此示例项目是为了演示 Unity 输入系统的各种工具和功能。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

60 行
1.6 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum SinglePlayerCameraMode
{
Stationary,
FollowAndOrbit
}
public class CameraManager : Singleton<CameraManager>
{
[Header("Component References")]
public GameObject gameplayCameraObject;
public GameObject uiOverlayCameraObject;
[Header("Virtual Cameras")]
public GameObject VCamStationaryObject;
public GameObject VCamSinglePlayerOrbitObject;
public void SetupManager()
{
SetCameraObjectNewState(gameplayCameraObject, true);
SetCameraObjectNewState(uiOverlayCameraObject, false);
}
public void SetupSinglePlayerCamera(SinglePlayerCameraMode currentCameraMode)
{
switch (currentCameraMode)
{
case SinglePlayerCameraMode.Stationary:
SetCameraObjectNewState(VCamStationaryObject, true);
SetCameraObjectNewState(VCamSinglePlayerOrbitObject, false);
break;
case SinglePlayerCameraMode.FollowAndOrbit:
SetCameraObjectNewState(VCamStationaryObject, false);
SetCameraObjectNewState(VCamSinglePlayerOrbitObject, true);
break;
}
}
void SetCameraObjectNewState(GameObject cameraObject, bool newState)
{
cameraObject.SetActive(newState);
}
//This is called by UIBillboardBehaviour so they can orient to wherever the gameplay camera is.
public Transform GetGameplayCameraTransform()
{
return gameplayCameraObject.transform;
}
public Camera GetGameplayCamera()
{
return gameplayCameraObject.GetComponent<Camera>();
}
}