譯者:崔嘉藝(milan21)
審校:崔國軍(飛揚971)
為什么會想要和大家說說Unity3D中加載場景,主要是因為在項目的場景中經常會出現一些問題,所以在這里就想和大家分享一些加載場景的想法。
你如何對一個“關卡”進行編程?
這在游戲引擎中通常不是一個問題,但Unity需要你將每個“關卡”隔離為一個場景。并且Unity的場景有一些奇怪的設計選擇(或者就是bug?) - 感覺他們引擎的場景是為玩具項目設計的,而不是為產品級別的游戲所設計。
這里有一個什么起作用、什么不起作用、以及我如何解決/在Unity內做得更好的意識流。。。這些內容沒有經過仔細研究,大多是來自記憶或我自己的拍腦袋。 所以。。。這篇文章里面記錄的內容可能不是全部是真的:)。
當我切換到Unreal4的時候,我將使用這樣的帖子作為基準來比較Unity為什么會失敗,以及多么糟糕 - 反之亦然。
更新:我添加了更多的方法和想法/評論
舉個簡單的例子來說:
1.加載場景的時候,游戲中的所有內容都將被銷毀。
2.場景不能帶參數。
3.場景不能保留狀態。
4.場景不能在代碼中構造或是修改。 程序化的游戲? 哈哈! 根本沒有機會!
5.你不能一次編輯多個場景(這是荒謬的,給開發帶來不必要地痛苦)。
6. 。。。和一堆其他問題,其中許多問題是上述問題的副作用。
更多Unity的bug使得你在處理這個問題的時候感覺像是在地獄里
1.當場景加載的時候,沒有辦法告訴Unity要運行什么代碼。
?這是必需的,因為Unity拒絕讓你傳遞參數。
?因為沒有辦法傳遞參數,所以你必須依賴Awake(),Start()和OnEnable()方法。
?這三種方法被定義為在對象之間以“隨機”的順序進行運行。
?如果你有一個需要被查找、加載和定位的參數,可以將其放在Awake()函數之中。
?如果需要對這個參數做全局引用,則必須在Start()函數運行期間設置它,否則不能保證它已被找到。
展開全文
譯者:崔嘉藝(milan21)
審校:崔國軍(飛揚971)
為什么會想要和大家說說Unity3D中加載場景,主要是因為在項目的場景中經常會出現一些問題,所以在這里就想和大家分享一些加載場景的想法。
你如何對一個“關卡”進行編程?
這在游戲引擎中通常不是一個問題,但Unity需要你將每個“關卡”隔離為一個場景。并且Unity的場景有一些奇怪的設計選擇(或者就是bug?) - 感覺他們引擎的場景是為玩具項目設計的,而不是為產品級別的游戲所設計。
這里有一個什么起作用、什么不起作用、以及我如何解決/在Unity內做得更好的意識流。。。這些內容沒有經過仔細研究,大多是來自記憶或我自己的拍腦袋。 所以。。。這篇文章里面記錄的內容可能不是全部是真的:)。
當我切換到Unreal4的時候,我將使用這樣的帖子作為基準來比較Unity為什么會失敗,以及多么糟糕 - 反之亦然。
更新:我添加了更多的方法和想法/評論
舉個簡單的例子來說:
1.加載場景的時候,游戲中的所有內容都將被銷毀。
2.場景不能帶參數。
3.場景不能保留狀態。
4.場景不能在代碼中構造或是修改。 程序化的游戲? 哈哈! 根本沒有機會!
5.你不能一次編輯多個場景(這是荒謬的,給開發帶來不必要地痛苦)。
6. 。。。和一堆其他問題,其中許多問題是上述問題的副作用。
更多Unity的bug使得你在處理這個問題的時候感覺像是在地獄里
1.當場景加載的時候,沒有辦法告訴Unity要運行什么代碼。
?這是必需的,因為Unity拒絕讓你傳遞參數。
?因為沒有辦法傳遞參數,所以你必須依賴Awake(),Start()和OnEnable()方法。
?這三種方法被定義為在對象之間以“隨機”的順序進行運行。
?如果你有一個需要被查找、加載和定位的參數,可以將其放在Awake()函數之中。
?如果需要對這個參數做全局引用,則必須在Start()函數運行期間設置它,否則不能保證它已被找到。返回搜狐,查看更多