簡體   English   中英

剛體速度突然凍結

[英]rigidbody.velocity sudden freeze

我是團結的新手。我面臨着移動物體的問題。 我給gameObject分配了一個速度,但是當它到達特定位置(23,14,-750)時,游戲對象凍結。 我不知道為什么 有時,對象繼續移動,而有時又突然停止。 怎么了? 謝謝

    {
            if (transform.localPosition.z <= -760) {
                    gameObject.SetActive (false);
            }
            gameObject.rigidbody.velocity = new Vector3 (0, 0, -speed);

    } 

如果將對象設置為非活動狀態,它將“凍結”:

 if (transform.localPosition.z <= -760) {
     gameObject.SetActive (false);
 }

不確定您希望SetActive(false)會做什么,但是其結果是停止所有邏輯,包括特定游戲對象的位置更新和碰撞。

因此,不要使對象處於非活動狀態。 將您的初始位置保存在Vector3中。

 Vector3 initPosition = gameObject.rigidbody.position;

並根據您的條件設置此值

if (transform.localPosition.z <= -760) {
 gameObject.rigidbody.position = initPosition;
}

這可能會解決問題,當您僅提供速度時,它不可避免地會在一段時間后凍結。 保持速度的技巧必須將速度與Time.deltatime相加

這將使剛體保持更新並且速度不會停止。

{
        if (transform.localPosition.z <= -760) {
                gameObject.SetActive (false);
        }
        gameObject.rigidbody.velocity = new Vector3 (0, 0, -speed+Time.deltatime);

} 

暫無
暫無

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

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