我遇到了這個(gè)我不知道如何解決的問題,如果條件得到驗(yàn)證,我有一個(gè)移動(dòng)的物體會(huì)返回到一個(gè)位置,但它似乎有時(shí)在工作,但有時(shí)卻不是..這是我的腳本:using System.Collections;using System.Collections.Generic;using UnityEngine;public class MovingDes : MonoBehaviour { private float speed = 5f; Transform trn; //-37.6914 //62.32123 // Use this for initialization void Start() { trn = GetComponent<Transform>(); } // Update is called once per frame void Update() { transform.Translate(Vector3.back * (speed * Time.deltaTime)); if(transform.position.z <= -37.6914){ Vector3 newPosition = new Vector3(17.5f,125.7f,165.32123f); trn.position = newPosition; } }}問題是我可以在我的 Unity 編輯器中看到位置與我設(shè)置的不同,而且我不明白這些值來自哪里,我沒有肯定地寫它們。
2 回答

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
您正在使用 transform.Translate 每幀移動(dòng)對象,因此在設(shè)置新位置后,您的對象會(huì)立即再次移動(dòng)。請注意,在您的情況下,trn 和 transform 指的是同一個(gè) Transform 組件。

冉冉說
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
你為什么不把你的trn.position=
改為transform.position=
我認(rèn)為你不需要GetComponent<>
當(dāng)前游戲?qū)ο蟮淖儞Q組件。或者可能與方法的relativeTo
參數(shù)有關(guān).Translate
。
- 2 回答
- 0 關(guān)注
- 762 瀏覽
添加回答
舉報(bào)
0/150
提交
取消