【发布时间】:2019-03-30 12:05:52
【问题描述】:
摄像头似乎只能在两个摄像头之间工作,并且不会像预期的那样切换回不同的摄像头。可能会做一些愚蠢的事情,因为我对此很陌生。非常感谢您的帮助。
using UnityEngine;
public class CameraController : MonoBehaviour
{
这是场景中的主摄像机。
public Camera MainCamera;
这些是场景中的其他摄像机。
public Camera FrontCamera;
public Camera LeftCamera;
public Camera RightCamera;
public Camera BackCamera;
功能
void Start()
{
MainCamera = Camera.main;
MainCamera.enabled = true;
FrontCamera.enabled = false;
LeftCamera.enabled = false;
RightCamera.enabled = false;
BackCamera.enabled = false;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
if (MainCamera.enabled)
{
FrontCamera.enabled = true;
MainCamera.enabled = false;
LeftCamera.enabled = false;
RightCamera.enabled = false;
BackCamera.enabled = false;
}
else if (Input.GetKeyDown(KeyCode.Space))
if (FrontCamera.enabled)
{
LeftCamera.enabled = true;
FrontCamera.enabled = false;
}
到目前为止,代码按预期工作。
else if (Input.GetKeyDown(KeyCode.Space))
{
if (LeftCamera.enabled)
{
RightCamera.enabled = true;
LeftCamera.enabled = false;
}
}
else if (Input.GetKeyDown(KeyCode.Space))
{
if (RightCamera.enabled)
{
BackCamera.enabled = true;
RightCamera.enabled = false;
}
}
else if (Input.GetKeyDown(KeyCode.Space))
{
if (BackCamera.enabled)
{
MainCamera.enabled = true;
RightCamera.enabled = false;
}
}
else if (Input.GetKeyDown(KeyCode.Space))
if (!MainCamera.enabled) ;
{
MainCamera.enabled = true;
}
}
}
【问题讨论】:
-
你好@Tim,你能找出你的问题吗?
-
实际上正要试一试……最近忙于学校项目。仅按一次空格就很有意义……不知道开关、(CAMERA_STATE)或大小写命令,但似乎非常有用。感谢帮助,如果我有任何进一步的问题会回复。干杯。
-
查找 C# 的 switch-case 语句。它们内置在语言中。然后,为您的相机状态创建您自己的状态枚举。这些是面向对象编程必不可少的一些基本元素。它们是强大的工具。
-
会的。再次感谢您的帮助。学习新东西总是好的。