我用多台摄像机在Unity 3D中做一个小场景
我试图制作一个脚本来更改按1,2,3,4,5,6,7,8,9,0键的摄像机
每个号码都分配给特定的摄像机。
任何帮助都很棒。
谢谢。
答案 0 :(得分:1)
这是脚本的完整版本,可用于在相机之间进行切换
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,将该脚本添加到GameObject中(从Add Component
菜单中选择或只是将脚本拖放到GameObject的检查器中),则需要在检查器中单击以扩展属性Cameras
,将Camera(Size
)的数量设置为3,然后在以下字段中链接您的相机。首先将主摄像机放好,不要将字段留空,否则脚本将失败。
如果需要在列表中添加新摄像机,只需在现有条件之外添加一个else if
条件,别忘了更改列表的大小并在检查器中链接新摄像机。 / p>
答案 1 :(得分:0)
您可以使用以下简单代码:
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;
...
}
...
}
您可以添加其他类似的相机。希望对您有帮助。