我想從另一個腳本的Start()之前的一個腳本運行Start()。可能嗎?你能選擇腳本執行的順序嗎?在另一個腳本的Start()Unity C之後執行腳本的Start()
0
A
回答
3
我不能完全肯定,但Start()
可以配置腳本執行順序的Awake
,OnEnable
和Update
。轉到菜單編輯/項目設置並設置您的偏好,如manual section中所述。因此,如果Start
也受到影響,您可能需要進一步調查 - 我認爲它與Update
有關
一般而言,我會建議仔細使用此功能。如果你運行這個列表中有太多腳本的情況,這表明有一些設計問題。
1
如果您有一個腳本(A)意味着另一個腳本(B)運行,我想這意味着A依賴於B.在這種情況下,您應該讓B調用A傳遞所需的數據。
public class A : MonoBehaviour
{
public void Init(State state){}
}
public class B : MonoBehaviour
{
private State state;
void Start()
{
this.state = SetState();
this.gameObject.GetComponent<A>().Init(this.state);
}
}
這可能是長期防止長時間調試的唯一方法。事實上,如果您使用腳本執行順序,那麼在您有很多課程並且您已經在該項目上工作了6個月或更長時間之前,情況良好。最糟糕的是,您將該項目交給另一個編碼器。然後,由於它們不在代碼中,所以你很難調試的新bug具有「隱形」依賴性。
0
你可以做的事通常是先做你想要的腳本,然後你會喜歡它。但是可以說你想在第一個腳本的末尾運行另一個腳本,你可以通過使用this來引用一個函數(用第二個腳本代替SecondScriptName,然後用函數替換FunctionFromSecondScript該腳本)
<SecondScriptName>().FunctionFromSecondScript();
然後,您可以按照您希望的順序依次調用所有函數。
如果我犯了一個錯誤,請原諒我,因爲這是我的第一個意見,以幫助另一位程序員,我目前是一個萌芽的我自己。
希望這會有所幫助:)
相關問題
- 1. 在單個腳本中同時具有IEnumerator Start()和void Start()
- 2. 從另一個腳本錯誤訪問start()函數?
- 3. 腳本中的awk'/ range start /,/ range end /'
- 4. 如何確保一個腳本只能在另一個腳本之後運行
- 5. 將bash腳本附加到apache start
- 6. RAILS_ENV =生產腳本/ delayed_job start(dir undefined)
- 7. Unity c#運行shell腳本
- 8. Unity C#CharacterController腳本
- 9. 在serializeFileUpload後執行腳本
- 10. 如何用str變量在另一個腳本內執行一個腳本?
- 11. 在每個php腳本之前執行php腳本?
- 12. PHP腳本在一定時間後觸發另一個腳本
- 13. 在C執行PHP腳本
- 14. 執行一個JavaScript腳本
- 15. 如果正在執行另一個腳本,防止運行python腳本
- 16. 如何在一個python腳本中控制/調用另一個python腳本? (在腳本之間進行溝通)
- 17. 如何使用Start-Job運行腳本時發出警告
- 18. 如何通過在另一個PHP腳本上調用我的PHP腳本來執行我的PHP腳本?
- 19. 調用另一個腳本後退出循環的Shell腳本
- 20. 在另一個腳本中使用一個腳本的輸出
- 21. 爲什麼我的bash腳本執行另一個腳本不能退出?
- 22. 從另一個python腳本運行一個python腳本?
- 23. 在另一個php腳本中使用exec()函數執行php腳本
- 24. 導入腳本到另一個腳本
- 25. 在執行的現有python腳本中運行並執行另一個python腳本
- 26. 執行Windows中的腳本,並鎖定下一個腳本
- 27. shell腳本的Ruby腳本執行
- 28. 從另一個腳本C#UNITY訪問變量
- 29. 在Perl腳本中執行一個setuid perl腳本
- 30. 在Unity中訪問另一個腳本中的對象位置
我99%肯定'Start()'也受到影響。 – Draco18s