2016-03-02 38 views
2

Unity3d。移動。 亞軍遊戲。有一些類型的物體,如汽車,BG,場景,食物,障礙物,動力單元等等。而行動,可以使用或不使用不同的對象。 從開始 - 我做了很多不同的腳本,如「sizeChanger」或「Sprite flipper」,其中所有人都使用不同的2D colliders,其中一些跟蹤Player position.x統一。哪個更快:一個帶開關的大腳本(ObjectType)或者很多簡單的腳本?

問題是在情況,其中一些活動中的行動是重複動作,如跟蹤Player position.x

所以我做了一個靈活的腳本,它具有公共enum ObjectType,在清醒,開始,更新,OnTriggerEnter2D,OnTriggerExit2D有開關(對象類型)......至於我的場景中的結果有很多gameObjects相同腳本與不同ObjectType聲明。

這會工作更慢還是性能差異不值得擔心? (作爲一個小問題,我沒有備份的舊版本有很多的腳本來測試FPS)。

+2

作爲一個意見,通常較小的腳本將更適合我,因爲長腳本意味着難以檢查。但這只是IMO。 – Ian

+0

我不明白你在做什麼,但是把所有東西放在一個腳本中,根據你的ObjectType複製粘貼和切換行爲是一個壞主意。 – Stud

+2

爲什麼你不測試和發現?您沒有舊版本不是一個藉口,因爲我們也不是。所以,如果你真的想知道,測試兩種情況。 –

回答

4

所以,我已經添加了1200個對象啓動現場,並在firts開始(右探查)有正在處理獨立的小劇本,在第二次創業(左Prifiler)正在大腳本...

結果:

  • 一些簡單的腳本 - 23.03ms(單機)延遲
  • 大型腳本 - 23.6ms (獨立)延遲 Standalone Profiler

結果:

  • 一些簡單的腳本 - 63毫秒(機器人)延遲
  • 大型腳本 - 67ms(機器人)延遲 Android Profiler

差是4毫秒的1200Objects。

對於我的遊戲正如我所看到的 - 在性能上的差異並不是爲什麼,因爲在我的遊戲場景中最多會有50個對象。