Unity - 菜鸡自啄 - 切换摄像机
摄像机的切换较为简单,主要通过控制摄像机组件的setactive来实现。话不多说,上代码。
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);
}
}
之后在添加代码的组件里分别放入三个摄像机
运行程序,完美。
######################################################################################################################################
当然网上有别的大神写出的代码特别简单,这里也给大家附上(膜拜代码大神,努力学习,以下为转载)
摄像机切换镜头
在游戏中经常会切换摄像机来观察某一个游戏对象,可以说,在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;
}
}
######################################################################################################################################