所以我有這個代碼: using System.Collections; using System.Collections.Generic; using UnityEngine; public class CreateTrail : MonoBehaviour { Vector3 lastLocation; int traveled; public GameObject obj; Quaternion lastQuaternion; bool on; // Use this for initialization void Start () { lastLocation = transform.position; lastQuaternion = transform.rotation; } // Update is called once per frame void Update () { if (on) { if (Vector3.Distance(lastLocation, transform.position) > .1) { Instantiate(obj, lastLocation, lastQuaternion); lastLocation = transform.position; lastQuaternion = transform.rotation; } } if (Input.GetKeyDown(KeyCode.Space)) { if (on) { on = false; } else { lastLocation = transform.position; lastQuaternion = transform.rotation; on = true; } } } }它在它所連接的對象后面創建一串對象,但通常將帶有腳本的對象和在彼此內部創建的對象一起創建。有沒有辦法在對象不在彼此內部時延遲或排隊對象實例化,而不會中斷腳本的其余部分?謝謝!
1 回答

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
您可以嘗試Coroutine
,Invoke
或InvokeRepeating
創建延遲。(盡量避免使用Timer
和Thread
。)
然后添加一個碰撞器作為觸發器作為邊界框,并實現其OnTriggerExit
或OnTriggerExit2D
方法,以便找出另一個碰撞器何時移出邊界框。
但是,可能還有另一個問題:
Vector3.Distance
返回 a float
,與 a double
( .1
)相比,其中一個應該轉換為另一個的類型。
它將float
被隱式轉換為double
并將其準確性改變。
您可以通過比較兩個float
s來避免這種情況
if (Vector3.Distance(lastLocation, transform.position) > .1f)
您可以在此處找到有關隱式轉換的更多信息
- 1 回答
- 0 關注
- 253 瀏覽
添加回答
舉報
0/150
提交
取消