unity摄像机 平滑

今天开始看android开发范例中的第三个范例,这里注意到这个函数Mathf.SmoothDamp的使用,游戏中用于做相机的缓冲跟踪,我们其实会留意一些游戏使用了smoothmove的功能,其实就是类似的效果,只是发现这个函数很容易的已经分装好了,查了官网文档发现使用起来真的非常简单。

smoothdamp,我的理解是平滑缓冲,东西不是僵硬的移动而是做减速缓冲运动到指定位置。我们看看代码:

1
2
3
4
5
6
7
8
public  Transform target;         //The player
     public  float  smoothTime= 0.3f;   //Smooth Time
     private  Vector2 velocity;        //Velocity
     void   Update ()
     {
         //Set the position
         transform.position =  new  Vector3(Mathf.SmoothDamp(transform.position.x, target.position.x,  ref  velocity.x, smoothTime),Mathf.SmoothDamp( transform.position.y, target.position.y,  ref  velocity.y, smoothTime),transform.position.z);
     }

这里稍微做一下讲解,target(跟踪的目标)、smoothtime(缓冲时间,时间越大缓冲速度越慢,移动也越慢)、velocity(相对缓冲减速,看起来很屌很复杂,事实上我们根本不用理睬他,它只是用作一个承载变量,我们只要默认赋值其实就是0就可以了)。

在update中,本物体(其实就是camera)的移动至做x轴和y轴移动,因为是横版游戏嘛~,大家其实可以吧velocity直接指定成一个float值,直接使用就是了。

好吧,大概讲解到此,希望帮到各位~


来源https://blog.csdn.net/u011285268/article/details/922938 


恶补下unity camera 知识

projection 里有 orthographic(无消失点投影) 和透视Perspective(有消失点投影)的区别

 orthographic


无法判断距离

正交视图无法看到一个物体是远离自己还是正在我们面前。为什么?

因为它不会根据距离收缩。所以如果你如果你画一个固定大小的物体在视点前面,同时画一个同样大小的物体在第一个物体的远后方,你无法说那个物体是第一个。

因为两个都是一样的大小,根距离无关。他们不会随着距离而收缩。

 和透视Perspective(有消失点投影)的区别

UI或2D游戏使用正交相机

 和透视Perspective(有消失点投影)的区别
通常我们在unity中制作2D UI,或是2D游戏的时候,就会把Camera的投射选择此项,例如NGUI的UICamera组件,默认的视图就是正交,还有2DTookit,也会把Main Camera的视图选择成正交。

透视Perspective(有消失点投影)

透视视图和我们从眼睛看到的视图是一样的。

例子:远小近大

一个高个子的人站在你面前,他看上去是很高的。

但是如果这个高个子站在100米以外,他甚至还没有你的拇指大。他看上去会随着距离而缩小,但是我们实际上都知道,它依然是个高个子。这种效果叫做透视。

例子中提到的两个物体,第二个物体将会显示地更小,所以我们可以区分哪个是离我们近的物体,那个是离我们远的物体。




来源:https://www.cnblogs.com/zhaoqingqing/archive/2013/09/05/3302484.html

 和透视Perspective(有消失点投影)的区别

猜你喜欢

转载自blog.csdn.net/qq2512667/article/details/79889785
今日推荐