NGUI与UGUI更改摄像机视野大小(缩放)的两种方法

前言:本人在网上找了一下更改摄像机视野的方法,找不到我想要的方法,并且NGUI更改摄像机的方法更少(我找不到,不代表你也找不到:),所以我自己写两种方法,以便大家参考。
这两种方法我都会写的很简单方便理解,并且可以直接使用。
前面有篇文章我已经写了摄像机跟随,可以搭配这个组合一起使用。

上代码

第一种UGUI改变摄像机视野(脚本挂在Camera下)

public class CameraFollow : MonoBehaviour {
    public Camera Camera01;
    private void Awake()
    {
        Camera01 = transform.GetComponent<Camera>();

    }
    void Update () {
         if(Input.GetAxis("Mouse ScrollWheel")<0)//鼠标滚轮
         {
             Camera01.fieldOfView +=1;//这里写的是1,可以根据你自己的实际情况改变,影响缩放大小
         }
        else  if (Input.GetAxis("Mouse ScrollWheel")>0)
        {
            Camera01.fieldOfView--;
        }
    }
}

fieldOfView这个可能有些人不懂,这个就是UGUI控制控制摄像机的视野大小的主要核心。
这里写图片描述
另外说一点:这个和控制摄像机的距离是不一样的!
Camera.main.transform.Translate(0,0,-1);例如这句代码,就是控制摄像机的远近,通过摄像机的远近来控制视野的大小。但是这个有个缺点就是在摄像机跟随的时候,这段代码显示不出效果,因为摄像机的距离和角色是固定的。(如果是做小地图,那也是不错的选择)。
而fieldOfView,是在原本的位置就可以直接更改摄像机的视野范围。所以这个可以在摄像机跟随角色的时候使用。
这个可以根据你所需要的选择。

第二种 NGUI改变摄像机视野

上代码

public class CameraFollow : MonoBehaviour {
    public Camera Camera01;
    private void Awake()
    {
        Camera01 = transform.GetComponent<Camera>();

    }
    void Update () {
         if(Input.GetAxis("Mouse ScrollWheel")<0)//鼠标滚轮
         {
             Camera01.orthographicSize += 1;//这里写的还是1,具体根据你的需求
         }
        else  if (Input.GetAxis("Mouse ScrollWheel")>0)
        {
            Camera01.orthographicSize--;
        }
    }
}

这里写图片描述
orthographicSize 改变的也是摄像机视野的大小,跟UGUI的fieldOfView差不多。
限制缩放的距离的话,就特别简单了,赋值就可以了,这里就不写了。

结尾:

说到缩放,那么还有一个Camera的值,不得不提一下。
就是Camera/Inspector下的Clear Flags这个值
具体可以上快车:https://blog.csdn.net/fenglele_fans/article/details/77842546
为什么谈这个值呢,因为在缩放的时候,再改变这个值,你会更容易理解Clear Flags。

NGUI(Newton Game Dynamics Integration)和UGUI(Unity UI)是Unity引擎中两种不同的UI系统。它们的主要区别在于设计目的、灵活性和更新时间线上。 1. **NGUI**:最初由Tasharen Entertainment开发,专注于游戏内交互界面,尤其是在2D游戏中表现优秀。它提供了一个简单直观的拖拽式UI编辑器,支持丰富的事件处理和组件系统。NGUI在Unity 5之前是一个独立的包,但现在已经整合到Unity的标准库中,作为Legacy UI的一部分。 2. **UGUI**:是Unity从Unity 5开始引入的新一代UI系统,是为2D和3D游戏设计的现代UI解决方案。它采用数据驱动的属性系统,提供了更高级的组件和布局选项,以及响应式设计,支持自适应布局。UGUI更加灵活,可以无缝集成到项目中,并且更容易进行性能优化。 **主要区别:** - **技术栈**:NGUI使用的是脚本组件系统,而UGUI是基于数据驱动的,支持更现代化的编程模型。 - **组件和事件**:UGUI提供了更多的组件类型和内置事件系统,使得设计更复杂交互界面更方便。 - **性能**:随着技术的发展,UGUI通常被认为在性能上优于NGUI,尤其是在大型场景和复杂交互时。 - **学习曲线**:对于新手来说,UGUI可能学习起来更快,因为它有直观的可视化编辑工具。 **相关问题**: 1. NGUI适合哪种类型的项目? 2. UGUI的响应式设计是如何工作的? 3. 如何在Unity项目中切换NGUI和UGUI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值