unity3d中多个摄像机切换代码

unity3d中多个摄像机切换代码

   脚本代码将依据按下的键盘上的 1、2 和 3决定启用对应摄像机的AudioListener 和 camera 组件,
   禁用其余两部摄像机的 AudioListener 和 camera 组件,因此看到不同的视图。

1、新建多个摄像机(不同位置)。

2、创建一个空物体挂上我们新建的脚本Camera Switch用来控制摄像机的切换。

3、Caneras中,Size为摄像机总数,将建立好的摄像机分别拖拽到Element中,Shotcuts中,Size为按钮控制相机的总数,1、2、3分别表示利用数字键控制显示Camera1、Camera2、Camera3。在这里插入图片描述

代码如下(示例):

using UnityEngine;
using System.Collections;

public class Camera Switch: MonoBehaviour
{
    
    

    public GameObject[] cameras;
    public string[] shotcuts;
    public bool changeAudioListener = true;

    void Update()
    {
    
    
        int i = 0;
        for (i = 0; i < cameras.Length; i++)
        {
    
    
            if (Input.GetKeyUp(shotcuts[i]))
                SwitchCamera(i);
        }
    }

    void SwitchCamera(int index)
    {
    
    
        int i = 0;
        for (i = 0; i < cameras.Length; i++)
        {
    
    
            if (i != index)
            {
    
    
                if (changeAudioListener)
                {
    
    
                    cameras[i].GetComponent<AudioListener>().enabled = false;
                }
                cameras[i].GetComponent<Camera>().enabled = false;
            }
            else
            {
    
    
                if (changeAudioListener)
                {
    
    
                    cameras[i].GetComponent<AudioListener>().enabled = true;
                }
                cameras[i].GetComponent<Camera>().enabled = true;
            }
        }
    }
}

注意:文件名为 Camera Switch

       自己可以修改文件名。

猜你喜欢

转载自blog.csdn.net/qq_43238378/article/details/128985090