[英]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.