ChangDaoZhanGuan/ChangDaoPro/Assets/Scripts/CameraMgr.cs

153 lines
4.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMgr : MonoBehaviour
{
private static CameraMgr instance;
public static CameraMgr Instance
{
get
{
if (instance == null)
{
GameObject obj = new GameObject("CameraMgr");
instance = obj.AddComponent<CameraMgr>();
DontDestroyOnLoad(obj);
}
return instance;
}
}
/// <summary>
/// 总的相机跳转位置点
/// </summary>
public Transform cameraTarget_all;
/// <summary>
/// 排水相机跳转位置点
/// </summary>
public Transform cameraTarget_drainage;
/// <summary>
/// 空调相机跳转位置点
/// </summary>
public Transform cameraTarget_cooler;
/// <summary>
/// 照明相机跳转位置点
/// </summary>
public Transform cameraTarget_lighting;
/// <summary>
/// 主相机
/// </summary>
public GameObject mainCamera;
private void Awake()
{
//mainCamera = GameObject.FindWithTag("MainCamera");
//cameraTarget_all = GameObject.Find("总览_用能_能效_碳排放Pos")?.transform;
//cameraTarget_drainage = GameObject.Find("排水Pos")?.transform;
//cameraTarget_cooler = GameObject.Find("空调Pos")?.transform;
//cameraTarget_lighting = GameObject.Find("照明_显示屏Pos")?.transform;
}
// 在这个函数中根据传入的参数执行不同的操作
public void PerformOperation(int operationType)
{
switch (operationType)
{
case 1:
Operation1();
break;
case 2:
Operation2();
break;
case 3:
Operation3();
break;
case 4:
Operation4();
break;
default:
Debug.LogError("Invalid operation type");
break;
}
}
// 不同操作的具体实现
/// <summary>
/// 总的
/// </summary>
private void Operation1()
{
Debug.Log("Performing Operation 1");
// 将主照相机的位置和角度设置为为空对象的位置和角度
//Config.Instance.mainCarema.position = Config.Instance.points[0].point.position;
//Config.Instance.mainCarema.rotation = Config.Instance.points[0].point.rotation;
SetCameraState(0);
//Camera camera = Camera.main;
//camera.transform.position = cameraTarget_all.position;
}
/// <summary>
/// 排水
/// </summary>
private void Operation2()
{
Debug.Log("Performing Operation 2");
SetCameraState(1);
// 将主照相机的位置和角度设置为为空对象的位置和角度
//mainCamera.transform.position = cameraTarget_drainage.position;
//mainCamera.transform.rotation = cameraTarget_drainage.rotation;
//Camera camera = Camera.main;
//camera.transform.position = cameraTarget_drainage.position;
}
/// <summary>
/// 空调
/// </summary>
private void Operation3()
{
Debug.Log("Performing Operation 3");
SetCameraState(2);
// 将主照相机的位置和角度设置为为空对象的位置和角度
//mainCamera.transform.position = cameraTarget_cooler.position;
//mainCamera.transform.rotation = cameraTarget_cooler.rotation;
//Camera camera = Camera.main;
//camera.transform.position = cameraTarget_cooler.position;
}
/// <summary>
/// 照明
/// </summary>
private void Operation4()
{
Debug.Log("Performing Operation 4");
SetCameraState(3);
// 将主照相机的位置和角度设置为为空对象的位置和角度
//mainCamera.transform.position = cameraTarget_lighting.position;
//mainCamera.transform.rotation = cameraTarget_lighting.rotation;
//Camera camera = Camera.main;
//camera.transform.position = cameraTarget_lighting.position;
}
public void SetCameraState(int index)
{
Config.Instance.mainCarema.position = Config.Instance.points[index].point.position;
Config.Instance.mainCarema.rotation = Config.Instance.points[index].point.rotation;
}
}