unity攝像機 平滑
今天開始看android開發範例中的第三個範例,這裡注意到這個函式Mathf.SmoothDamp的使用,遊戲中用於做相機的緩衝跟蹤,我們其實會留意一些遊戲使用了smoothmove的功能,其實就是類似的效果,只是發現這個函式很容易的已經分裝好了,查了官網文件發現使用起來真的非常簡單。
smoothdamp,我的理解是平滑緩衝,東西不是僵硬的移動而是做減速緩衝運動到指定位置。我們看看程式碼:
12345678 | 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(有消失點投影)的區別