攝像機跟隨移動有多種方式,為了使攝像機更平滑的移動,這裡使用插值運算,很多人說使用它總會卡頓,只是因為同步更新問題,將移動方式放於lateupdate()中便可,在地圖允許的情況下,直接使用座標插值即可。
//插值運算移動
transform.position=vector3.
lerp
(vector3 origin,vector3 target,speed*time.deltatime)
;
有時候素材不足以支撐攝像機的自由跟隨(即地圖太小不允許),這就需要為攝像機設定範圍,a為相機xy軸自由移動,b為xy軸分別移動,c為相機移動死角,d為攝像機。
攝像機中心位置移動範圍為a,在b區域只能xy軸分開移動,在c區域無法移動。
// x軸插值
target.x=mathf.
lerp
(transform.position.x, playerpoint.transform.position.x, speed * time.deltatime)
;// y軸插值
target.x=mathf.
lerp
(transform.position.y, playerpoint.transform.pyosition.y, speed * time.deltatime)
;//速度緩衝
public struct lrsize/*自定義結構體*/
}public float normalspeed;
//正常速度
public float limitspeed;
//最小速度
public float smoothspeed;
//緩衝速度
protected lrsize alertlimit;
//緩衝範圍
public virtual void
limit()
}else}}
public virtual void
tolerp()
if(相機在上下&&目標在上下)}}
else
}public
void
lateupdate()
Viewport3D中的攝像機(二 攝像機動作)
前文介紹了viewport3d中的兩種攝像機 orthographiccamera和perspectivecamera。在3d場景裡漫遊,最主要的工作就是針對使用者輸入 例如滑鼠左右移動 鍵盤按下a w s d等鍵 來改變攝像機的位置 方向。本文接下來介紹如何通過改變perspectivecamer...
Viewport3D中的攝像機(二 攝像機動作)
前文 介紹了viewport3d中的兩種攝像機 orthographiccamera和perspectivecamera。在3d場景裡漫遊,最主要的工作就是針對使用者輸入 例如滑鼠左右移動 鍵盤按下a w s d等鍵 來改變攝像機的位置 方向。本文接下來介紹如何通過改變perspectivecame...
Unity3D 2D遊戲攝像機的跟隨實現
新建乙個canvas,canvas設定render mode為world space。event camera為主攝像機。rect transform的width 800,height 480.新建乙個主角test,為主角新增指令碼。testplayer.cs.新建兩個空物件,分別為放在地圖的左下角...