unity3D实现点击按钮切换视角

一、实现目标

        实现点击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:在实际测试过程中,我在第一人称跳跃(按空格键)时会触发到按钮,为了禁掉这一点,可以按下述内容操作:

  1. 选择UI按钮对象。
  2. 在Inspector面板中,找到Button组件。
  3. 在Button组件下,检查Navigation部分的设置。默认的Navigation模式可能会导致空格键关联到按钮的点击事件。
  4. 将Navigation的Mode改为None,这样可以避免按钮接收键盘输入作为触发条件。

        

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值