在物體角色移動時用FixedUpdate而相機跟隨使用Update時,相機可能會跟隨主角的過程中抖動
相機跟隨的代碼:其中players為跟隨的目標
1 private void Update() 2 { 3 Vector3 Player=players.position+playmover; 4 transform.position=Vector3.Lerp(transform.position,Player,Time.deltaTime*smoothing); 5 if(Vector3.Distance(transform.position,Player)<=0.02f) 6 { 7 transform.position=Player; 8 } 9 transform.LookAt(players);}
此處可能是因為使用了插值算法的原因,從而導致相機和角色有了位置差,故LootAt一直搖擺跟隨,故最簡單的方法時賦值
private void Update() { transform.position=players.position+playmover; transform.LookAt(players); }
又或者使用Cinemachine。它同樣可以適用於靜頭跟蹤
在靜頭跟蹤可以使用兩個辦法:
一、除了用傳統的辦法,定義一個參數,然后將player的值拉近這個參數
例如:pulic Transform player
void update()
{
transfrom.position=new Vector3(player.position.x,0,-10) //設置靜態跟蹤的參數,x,有,z軸的值,其中x的值是跟蹤人物的變化
}
例如:pulic Transform player
void update()
{
transfrom.position=new Vector3(player.position.x,0,-10) //設置靜態跟蹤的參數,x,有,z軸的值,其中x的值是跟蹤人物的變化
}
二、在unity的Windows->Package manager->All packages選擇Cinemachine安裝。
再在Cinemachine中選擇Create 2D Camera,再在Hierarchy中選擇出現的CM vcam1,再在Inspector中將需要跟蹤的物體(Player)拖入到Follow
CM vcam中的Body的是調節攝像頭各種參數。
在背景跳出鏡頭的處理中,我們可以在CV vcam1中的Inspector界面的Add Extension中選擇Cinemachine Confiner(它需要背景添加一個Conllider)
我們在背景中選擇添加Polyon Collider2D將背景用Edit Collider編輯,同時我們得將Is Trigger勾選。然后回到Cv vcam1中在Cinemachine Confiner中將Bounding Shape 2D的選擇為背景的Collider