簡體   English   中英

Unity3D c# 2D 游戲攝像機跟隨正在跳躍

[英]Unity3D c# 2D Game Camera Follow is making jumps

我使用 Unity 制作了一個 2D 無盡的跑步游戲,其中 Player Object 向上移動,但對於 Viewer,他仍然在同一個位置,因為相機在跟隨他。 下面的效果很好,但問題是它每隔幾秒鍾就會發生一次小跳躍。 跳躍很小,因此一般不會影響游戲玩法,但它們足夠大,看起來游戲運行不順暢。

我什至不知道是相機在跳躍還是播放器 Object。 但我認為是相機,因為生成的障礙物也在跳躍。 可能是什么問題? 我是否為相機使用了正確的方法?

public class Player
{
    float speed = 5f;
    void Update()
    {
        transform.Translate(0, speed*Time.deltaTime, 0);
    }
}

這是附加到相機的腳本:

public class CameraFollow
{
    private Vector3 FollowVector;
    public Transform Player;
    void LadeUpdate()
    {
        FollowVector = Player.position - new Vector3(0, -4f, 10);
        transform.position = Vector3.Lerp(transform.position, FollowVector, Time.deltaTime * 4f);
    }
 }

跳躍是否每 4 秒發生一次? 我認為問題可能出在您的Vector3.Lerp function 中。 它基本上是一個松散的相機跟隨,需要 4 秒( Time.deltaTime * 4f )才能從 A 點平滑 go 到 B 點。每 4 秒它重置它的路徑,因此是跳躍。 至少這是我的理論。

如果您不介意相機嚴格跟隨玩家,我只需刪除 Lerp 並將transform.position設置為 FollowVector 值,如下所示:

void LadeUpdate()
    {
        transform.position = Player.position - new Vector3(0, -4f, 10);
    }

嘗試使用 Vector3.MoveTowards

float step =  speed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, Player.position - new Vector3(0, -4f, 10f), step);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM