一、实现目标
实现点击GodView跳转到上帝视角,FreeView跳转到自由视角等等
二、实现方法
第一步:创建脚本
创建一个脚本 -- GodViewSelected用来使GodViewSelected显示,其它相机失效。
//version - 0.1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GodViewSelected : MonoBehaviour
{
public Camera GodViewCamera;
public Camera FreeCamera;
public Camera FirstPersonCamera;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void GodCameraViewSelected()
{
GodViewCamera.gameObject.SetActive(true);
FreeCamera.gameObject.SetActive(false);
FirstPersonCamera.gameObject.SetActive(false);
}
}
创建一个脚本 -- FreeViewSelected用来使FreeViewSelected显示,其它相机失效。
//version - 0.1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FreeViewSelected : MonoBehaviour
{
public Camera GodViewCamera;
public Camera FreeCamera;
public Camera FirstPersonCamera;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void FreeCameraViewSelected()
{
GodViewCamera.gameObject.SetActive(false);
FreeCamera.gameObject.SetActive(true);
FirstPersonCamera.gameObject.SetActive(false);
}
}
创建一个脚本 -- ThirdPersonViewSelected用来使FirstPersonViewSelected显示,其它相机失效。
//version - 0.1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstPersonViewSelected : MonoBehaviour
{
public Camera GodViewCamera;
public Camera FreeCamera;
public Camera FirstPersonCamera;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void FirstPersonCameraViewSelected()
{
GodViewCamera.gameObject.SetActive(false);
FreeCamera.gameObject.SetActive(false);
FirstPersonCamera.gameObject.SetActive(true);
}
}
第二步 :将第一步创建的三个脚本分别添加到GodViewCamera,FreeCamera02,FirstPersonCamera
第三步:给三个Buttons添加OnClick()事件
注:我在这里以GodViewCameraButton为实例,添加OnClick()事件调用脚本 -- GodViewSelected中的GodCameraViewSelected()函数。
3.1将GodViewCamera拖入到Object中
3.2选择Function - GodViewSelected - GodCameraViewSelected()
其余两个按钮添加OnClick()事件之后,便可以实现本章目标。
三、结果测试
点击GodView跳转可以到上帝视角
点击FreeView跳转到自由视角
点击FirstPerson跳转到第一人称视角
四、结果分析
由于我在之后的项目过程中还会添加其它相机,那么我必须修改在之前每一个相机上的脚本。
五、后续问题分析
问题1:在实际测试过程中,我在第一人称跳跃(按空格键)时会触发到按钮,为了禁掉这一点,可以按下述内容操作:
- 选择UI按钮对象。
- 在Inspector面板中,找到Button组件。
- 在Button组件下,检查Navigation部分的设置。默认的Navigation模式可能会导致空格键关联到按钮的点击事件。
- 将Navigation的Mode改为None,这样可以避免按钮接收键盘输入作为触发条件。