Unity - 菜鸡自啄 - 切换摄像机
摄像机的切换较为简单,主要通过控制摄像机组件的setactive来实现。话不多说,上代码。
Unity - 菜鸡自啄 - 切换摄像机

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeCamera : MonoBehaviour {
    public GameObject camera_0;
    public GameObject camera_1;
    public GameObject camera_2;
    
    // Use this for initialization
    void Start () {
        camera_0.SetActive(false);
        camera_1.SetActive(true);
        camera_2.SetActive(false);
        //场景开始,开启正视图
    }
	
	// Update is called once per frame
	void Update () {

	}

    //开启俯视图
    public void OnClick_TopView()
    {
        camera_0.SetActive(true);
        camera_1.SetActive(false);
        camera_2.SetActive(false);
    }
    //开启正视图
    public void OnClick_FrontView()
    {
        camera_0.SetActive(false);
        camera_1.SetActive(true);
        camera_2.SetActive(false);
    }
    //开启左视图
    public void OnClick_LeftView()
    {
        camera_0.SetActive(false);
        camera_1.SetActive(false);
        camera_2.SetActive(true);
    }
}

之后在添加代码的组件里分别放入三个摄像机
Unity - 菜鸡自啄 - 切换摄像机
运行程序,完美。
Unity - 菜鸡自啄 - 切换摄像机Unity - 菜鸡自啄 - 切换摄像机
Unity - 菜鸡自啄 - 切换摄像机

######################################################################################################################################
当然网上有别的大神写出的代码特别简单,这里也给大家附上(膜拜代码大神,努力学习,以下为转载)

摄像机切换镜头

在游戏中经常会切换摄像机来观察某一个游戏对象,可以说,在3D游戏开发中,摄像头的切换是不可或缺的。这次我们学习总结下摄像机怎么切换镜头。
代码:

private var Camera0: GameObject;
private var Camera1: GameObject;
private var Camera2: GameObject;
private var Camera: GameObject;

function Start()
{
//获取摄像机对象
Camera = GameObject.Find(“Camera”);
Camera0 = GameObject.Find(“Camera0”);
Camera1 = GameObject.Find(“Camera1”);
Camera2 = GameObject.Find(“Camera2”);
}

function OnGUI ()
{

if(GUILayout.Button("投射侧面",GUILayout.Height(50)))  
{  
        //关闭Camera1与Camera2  
        Camera.active = false;  
        Camera1.active = false;  
        Camera2.active = false;  
          
        //打开Camera0  
        Camera0.active = true;  
}  
  
if(GUILayout.Button("投射正面",GUILayout.Height(50)))  
{  
        //关闭Camera0与Camera2  
        Camera.active = false;  
        Camera0.active = false;  
        Camera2.active = false;  
          
        //打开Camera1  
        Camera1.active = true;  

}  
  
if(GUILayout.Button("投射上面",GUILayout.Height(50)))  
{  
        //关闭Camera0与Camera1  
        Camera.active = false;  
        Camera0.active = false;  
        Camera1.active = false;  
          
        //打开Camera2  
        Camera2.active = true;  

}  
if(GUILayout.Button("全景投射",GUILayout.Height(50)))  
{  
        //关闭Camera0与Camera1  
        Camera0.active = false;  
        Camera1.active = false;  
        Camera2.active = false;  
        //打开Camera2  
        Camera.active = true;  

}  

}

######################################################################################################################################

相关文章: