Unity 3D-通过按键代码的多摄像机切换脚本

时间:2018-09-28 19:13:18

标签: unity3d camera

我用多台摄像机在Unity 3D中做一个小场景

我试图制作一个脚本来更改按1,2,3,4,5,6,7,8,9,0键的摄像机

每个号码都分配给特定的摄像机。

任何帮助都很棒。

谢谢。

2 个答案:

答案 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;
         ...
    }
    ...
}

您可以添加其他类似的相机。希望对您有帮助。