网站公告 | 全新unity3d 完整学习路线,最强课程配套、服务!详情点击
查看: 4902|回复: 3
收起左侧

[开发经验] [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小

[复制链接]

[开发经验] [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小[复制链接]

Liangzz 发表于 2018-1-3 09:24:52 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式 回复:  3 浏览:  4902
大家好,欢迎大家关注由我为大家带来的Unity3D游戏开发系列文章,我的博客地址为:http://blog.csdn.net/qinyuanpei
今天为大家分享的是在Rpg游戏中十分常见的鼠标滚轮调整摄像机视野效果,首先我们先创建一个游戏场景:

[Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小

[Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小

接下来我们编写一段脚本代码:
[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;

public class CameraZoom : MonoBehaviour {

void Start () {

}


void Update () 
{
//Zoom out
if (Input.GetAxis("Mouse ScrollWheel") <0)
        {
           if(Camera.main.fieldOfView<=100)
           Camera.main.fieldOfView +=2;
           if(Camera.main.orthographicSize<=20)
           Camera.main.orthographicSize +=0.5F;
        }
//Zoom in
    if (Input.GetAxis("Mouse ScrollWheel") > 0)
    {
      if(Camera.main.fieldOfView>2)
Camera.main.fieldOfView-=2;
  if(Camera.main.orthographicSize>=1)
    Camera.main.orthographicSize-=0.5F;
    }
}
}

从上面的代码中,我们可以看出,我们通过改变摄像机的视野就可以实现场景的放大和缩小,而对于鼠标滚轮的监听我们这里用到了GetAxis()方法,下面给出演示动画:

[Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小

[Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小


2014年10月6日更新
       起初写这篇文章的时候,对于很多概念都没有较为清楚地认识,如今渐渐地懂了,只好回头再来补上当时没有解决的问题。在这段脚本中我们是通过改变摄像机的视野大小来实现这样的一个缩放效果的,这是一种方法。当然我们可以选择另外的一种方法,即根据透视成像原理,摄像机离物体越近,则物体成像相当越大,摄像机离物体越远,则物体成像相对越小。利用这个原理,我们可以很容易的想到我们可以通过改变摄像机到物体地距离来实现缩放效果。于是,我们有了下面的代码:
  
//鼠标滚轮缩放  
[C#] 纯文本查看 复制代码
Distance-=Input.GetAxis("Mouse ScrollWheel") * ZoomSpeed;  
Distance=Mathf.Clamp(Distance,MinDistance,MaxDistance);  

         
//重新计算位置  
[C#] 纯文本查看 复制代码
Vector3 mPosition = mRotation * new Vector3(0.0F, 0.0F, -Distance) + Target.position;
这段代码可以让我们在一个由MinDistance、MaxDistance所确定地范围内对Distance按照一定地ZoomSpeed进行缩放,这样我们就可以根据Distance的值来重新计算摄像机的位置,这样我们同样能实现类似与这篇文章中地效果。本次更新就是这样了,希望大家喜欢啊。如果对这段代码有疑问,可以访问http://blog.csdn.net/qinyuanpei/article/details/39253951或者给博主留言,谢谢大家。
+1
4897°C
3
  • feelbug
  • 只爱脆夹心
  • davidoffken
过: 他们
因分享而快乐,学习以自强!
feelbug 发表于 2018-1-3 22:19:33 显示全部楼层
来untiy版看看
因分享而快乐,学习以自强!
只爱脆夹心 发表于 2018-1-4 11:14:14 显示全部楼层
抢不到沙发嘛
因分享而快乐,学习以自强!
davidoffken 发表于 2018-4-21 11:48:36 显示全部楼层
看起来效果不错,感谢分享!
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精选内容

    最新关注

    VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 浙ICP 备 13006852号-15 )|网站地图

    © 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

    1
    QQ