學習資源:B站 M_Studio《Unity教程2D入門》09-10
Unity Assets:Sunnyland
Day4
cinema跟随
方法一:transform
思路:鏡頭的x,y與Player的保持一緻即可
代碼如下:
CameraController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public Transform player;
// Update is called once per frame
void Update()
{
transform.position = new Vector3(player.position.x, player.position.y, -10);
}
}
屬性面闆直接拖入player節點,擷取的就是player的transform元件。
鎖定y軸,就不随着角色跳躍而在豎直方向移動鏡頭:
在寫腳本的時候為什麼會有大寫的Transform和小寫的transform?
大寫的就是指Transform 類型,小寫的是指挂該腳本的節點的transform
方法二:Cinemachine 插件
為了解決角色移動跳躍時,背景邊界的問題。
安裝成功之後建立一個2D camera 它會自動複制main camera的參數,并替代掉它。
這個camera有一些參數,需要調一下。
Follow的意思是相機要跟随的對象(拖入player)
試玩一下,發現鏡頭随着角色的移動有一定的延遲效果,非常自然!
Lens裡面是一些相機參數(暫時不用調,了解即可)
Body 的參數
Dead Zone是指:如果玩家在此區域中,鏡頭不移動,調不調都行,讓我想起來造夢西遊的遊戲效果。(大型遊戲的鏡頭跟蹤效果)
很多時候角色并不是在鏡頭的中央,可以調節Screen X\Y
比如修改X,就可以讓角色一直在鏡頭的左側顯示。
如何讓遊戲角色不跳出邊界?
思路:給背景添加collider 鏡頭邊邊碰到了就不能出去了
第一步:給相機添加Confiner
然後就會發現有一個參數是Bounding Shape 需要複制一個碰撞體
給背景添加collider的時候必須添加polygon collider (意為多邊形碰撞體)
注意,要将trigger勾選,隻作為觸發碰撞體使用,不然會把player直接彈飛
尋找collider時,點選那個圓圓圈,即可看見現有的所有collider
ps:polygon碰撞體預設是5個點,如果想去掉點,按下ctrl然後點選那個點就可以了
這樣,無論角色跳的多高,當達到邊界時,鏡頭就不會再向上移動了。