我正在用多个摄像机在Unity 3D中做一个小场景
我正在尝试编写一个脚本来更改相机按键1,2,3,4,5,6,7,8,9,0
每个数字都指向特定的摄像机。
任何帮助都要感谢。
谢谢。
发布于 2018-09-30 02:29:45
以下是可用于在相机之间切换的脚本的完整版本
using System.Collections.Generic;
using UnityEngine;
public class CameraSwitch : MonoBehaviour
{
public List<Camera> Cameras;
private void Start()
{
EnableCamera(0);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
EnableCamera(0);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
EnableCamera(1);
}
else if (Input.GetKeyDown(KeyCode.Alpha3))
{
EnableCamera(2);
}
/*
* If you want to add more cameras, you need to add
* some more 'else if' conditions just like above
*/
}
private void EnableCamera(int n)
{
Cameras.ForEach(cam => cam.enabled = false);
Cameras[n].enabled = true;
}
}
将脚本命名为CameraSwitch
(全名CameraSwitch.cs
),在场景中创建新的GameObject或使用现有脚本,将脚本添加到GameObject (从Add Component
菜单或只是将脚本拖放到游戏对象的检查器),然后需要通过在检查器中单击展开property Cameras
,将摄影机(Size
)的数量设置为3,并在以下字段中链接摄影机。将主摄像头放在第一位,不要将字段留空,否则脚本将失败。
如果您需要向列表中添加新的摄像头,只需在现有条件之外添加一个else if
条件,并且不要忘记更改列表的大小,并在检查器中链接新的摄像头。
发布于 2018-09-29 04:48:34
你可以使用这个简单的代码:
public Camera camera1;
public Camera camera2;
...
void Start()
{
camera1.enabled = true;
camera2.enabled = false;
...
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Alpha1))
{
camera1.enabled = true;
camera2.enabled = false;
...
}
else if(Input.GetKeyDown(KeyCode.Alpha2))
{
camera1.enabled = false;
camera2.enabled = true;
...
}
...
}
你可以添加像这样的其他摄像头。我希望它能对你有所帮助。
https://stackoverflow.com/questions/52561394
复制相似问题