簡體   English   中英

放慢時間Unity3d Mecanim

[英]Slow down time Unity3d Mecanim

我試圖放慢速度並最終停止它,我有一個放慢timeScale的腳本,但是使用mecanim的播放器也放慢了速度。

我創建了一個TimeController.cs,通過使用替代的deltaTime,玩家可以使用它來跟蹤時間,

public class TimeController : MonoBehaviour {

private float oldTimeSinceStart;
public float deltaTime;

void LateUpdate () {
    float timeSinceStart = Time.realtimeSinceStartup;
    deltaTime = timeSinceStart - oldTimeSinceStart;
    oldTimeSinceStart = timeSinceStart;

    if (Input.GetButton("BulletTime"))
    {
        if (Time.timeScale > 0.01)
        {
            Time.timeScale -= 0.004f;
        }
    }
    else
    {
        if (Time.timeScale < 1)
        {
            Time.timeScale += 0.01f;
        }
    }
}
}

從這一點出發,我考慮過使用Animator Update來設置mecanim邏輯驅動的播放器速度和動畫速度,但是當使用Animator.Update(MyTimeController.deltaTime)時,我似乎無法做到。 它似乎以可變速度運行,好像Animator在某處有第二個輸入。

有沒有解決的辦法? 您可以將timeScale與播放器/ mecanim隔離開來,並讓其查看輸入變量的另一個Time類嗎?

因此,對於世界來說,時間在變慢,但對於玩家而言,卻變慢了,想想時鍾停止器吧!

根據Unity文檔,動畫師對象中具有以下動畫速度屬性:

https://docs.unity3d.com/Documentation/ScriptReference/Animator-speed.html

嘗試使用<yourgameobjecthere>.getComponent<Animator>().speed = Time.timescale; 在設置時間刻度之后。

我不確定在動畫播放過程中是否正確應用了動畫速度。

正如Felype所述,您可以使用Animator組件,我通常會獲得Animator組件,然后使用<animator_object>[<animation_clip_object.name>] .speed。 對於速度,值1表示正常速度。

暫無
暫無

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

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