天天看點

Unity2D學習筆記Day4:鏡頭控制Day4

學習資源: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 插件

為了解決角色移動跳躍時,背景邊界的問題。

Unity2D學習筆記Day4:鏡頭控制Day4

安裝成功之後建立一個2D camera 它會自動複制main camera的參數,并替代掉它。

Unity2D學習筆記Day4:鏡頭控制Day4

這個camera有一些參數,需要調一下。

Unity2D學習筆記Day4:鏡頭控制Day4

Follow的意思是相機要跟随的對象(拖入player)

Unity2D學習筆記Day4:鏡頭控制Day4

試玩一下,發現鏡頭随着角色的移動有一定的延遲效果,非常自然!

Lens裡面是一些相機參數(暫時不用調,了解即可)

Body 的參數

Unity2D學習筆記Day4:鏡頭控制Day4

Dead Zone是指:如果玩家在此區域中,鏡頭不移動,調不調都行,讓我想起來造夢西遊的遊戲效果。(大型遊戲的鏡頭跟蹤效果)

Unity2D學習筆記Day4:鏡頭控制Day4

很多時候角色并不是在鏡頭的中央,可以調節Screen X\Y

比如修改X,就可以讓角色一直在鏡頭的左側顯示。

Unity2D學習筆記Day4:鏡頭控制Day4

如何讓遊戲角色不跳出邊界?

思路:給背景添加collider 鏡頭邊邊碰到了就不能出去了

第一步:給相機添加Confiner

Unity2D學習筆記Day4:鏡頭控制Day4

然後就會發現有一個參數是Bounding Shape 需要複制一個碰撞體

Unity2D學習筆記Day4:鏡頭控制Day4

給背景添加collider的時候必須添加polygon collider (意為多邊形碰撞體)

Unity2D學習筆記Day4:鏡頭控制Day4

注意,要将trigger勾選,隻作為觸發碰撞體使用,不然會把player直接彈飛

尋找collider時,點選那個圓圓圈,即可看見現有的所有collider

Unity2D學習筆記Day4:鏡頭控制Day4

ps:polygon碰撞體預設是5個點,如果想去掉點,按下ctrl然後點選那個點就可以了

這樣,無論角色跳的多高,當達到邊界時,鏡頭就不會再向上移動了。

Unity2D學習筆記Day4:鏡頭控制Day4

繼續閱讀