[回到版面]
回應模式
名 稱
E-mail
標 題
內 文
附加圖檔[] []
刪除用密碼(刪除文章用。英數字8字元以內)
  • 可附加圖檔類型:GIF, JPG, PNG, JPEG,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 10000 KB。當回文時E-mail填入sage為不推文功能
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 程式碼可使用 [code][/code] 以 google-code-prettify 標亮 (程式自動判斷語言類別)

  • 公告、舉報、建議請向DB管理室辦理。
  • 本板討論遊戲製作為主,改造方面也可討論,但如果牽涉到版權,請自重。
  • 3D建模請至3D板, 3D遊戲製作(Ex.怎麼用DirectX跑3D?)則可在這討論。
  • 本板為一般向板面,禁止張貼上車圖。

檔名:1487699164834.png-(1197 KB, 1280x720) [以預覽圖顯示]
1197 KB無標題 名稱: 無名氏 [17/02/22(三)01:46 ID:KqfXIJ7o] No.12584 8推 
我沒有Unity Pro
想請問,如果有個角色,有兩個型態,兩個之間變身時沒有動畫,單純兩個完全不同模型
以下兩邊做法,哪個比較節省效能?
A.一開始在同一年Object上就有兩個模組,但永遠有其中一個SetActive(false)
B.要變身時把之前那個Destory,然後把需要那個生出來
還是說有其他更好做法?
無名氏: 又如果型態多於2個又如何? (KqfXIJ7o 17/02/22 01:48)
無名氏: 不先用unity3d試試看嗎... (9GQe050Q 17/02/22 02:10)
無名氏: 試了,可是我感覺不到分別 (KqfXIJ7o 17/02/22 02:48)
無名氏: 你是只放一個objekt 然後用肉眼觀察??? (9GQe050Q 17/02/22 03:19)
無名氏: 還是在同樣狀況下 各放一百個去實驗? (9GQe050Q 17/02/22 03:20)
無名氏: 一百個如果還是分不出來 你可以放到一千個一萬個 (9GQe050Q 17/02/22 03:20)
無名氏: 你有道理,試到了,兩個方式吃效能的時間點不同,抱歉新手,以後會用百倍方式試效能,感謝 (KqfXIJ7o 17/02/22 03:58)
無名氏: ・゚(ノд`゚)會做這種事情然後還說自己是新手這板上大概一堆人要哭倒在地上了 (5Tdst7Wk 17/02/22 11:28)
無標題 名稱: 無名氏 [17/02/22(三)14:08 ID:1LNy..Z.] No.12586 3推  
我沒玩過unity,不過用程式共通知識講一下

兩個方案各有好壞
1的優點是切換時執行快速,缺點是會持續性地吃很多記憶體
2則反過來,在切換的時候會花很多時間,但較省記憶體
多數情況之下是前者比較好,畢竟現在記憶體便宜
不過還是要看你實際上的使用狀況
如果你只有兩三個型態,且常常切換,則顯然是1較好
反之,如果你型態有千千萬萬個,但是幾分鐘甚至幾天才切換一次,那就是2好

1的開場載入時間會比較長,但是那個不重要
開場的時候多等半秒跟激戰的時候卡住半秒,顯然是後者比較嚴重吧
除非你是型態超多而顯著地影響讀取時間,又是一場打個幾十秒、常常在跑開場
無名氏: 其實重點是「變身時沒有動畫」 有緩衝時間的話會推薦2 (vYN751vo 17/02/22 14:38)
無名氏: 但是「吃記憶體」和「變身時停住甚至暫時消失」比起來後者比較危險 所以還是全部做1以策安全 (vYN751vo 17/02/22 14:42)
無名氏: 推這篇 從想要做什麼來判斷到底該用什麼方法 (kxTi8qD2 17/02/22 14:49)
無標題 名稱: 無名氏 [17/02/23(四)01:18 ID:f7O04W7g] No.12587   
實際上依需求有很多種作法(你提到就不提了)

1.在Unity可以先將物件存於記憶體中.需要時再Instantiate出來
好處是省去load資源的時間.方便產生大量物件和操作單純
不用再特地去做關閉開啟等動作.需要就生成不要就砍掉

2.模型可以使用renderer開關要不要顯示
好處是如果該物件需要常被操作.但又不一定會顯示
例如: 你可能需要武器放特定招式時消失.但又不想顯示時位置不在手上

3.麻煩但效果最多樣化就是用Shader
無標題 名稱: 無名氏 [17/02/28(二)21:45 ID:9ickUYfE] No.12609 1推  
a.佔記憶體 切換時速度快
b.這裡需要補充一下
如果只是單純的Destroy(還拼錯)的話,物件不會在當下被刪除
而是在系統覺得需要刪除時移除,你需要的是DestroyImmediate(立即摧毀)
Destroy的狀況>
第一次會花點時間(視物件大小),
被Destroy後其實還是被hold在記憶體,第二次生成此物件就會快很多(畢竟它就在記憶體內)

DestroyImmediate的狀況>
第一次會花點時間,刪除時花時間,loop

所以說作法當然是a為首選,必要時使用b的Destroy方式
方法a>進入戰鬥中的"絕對必要"資源的管理方式
方法b>使用在戰鬥中"非絕對必要"的物件(部分特效等等)
使用方法b是為了加快進入戰鬥場景的讀取速度(即非必要物件,不預先載入)
補充1: 如果變身是遊戲核心,基本上就是使用方法a,再去想辦法節省其它物件的記憶體用量 (9ickUYfE 17/02/28 21:49)

【刪除文章】[]
刪除用密碼:
第一頁[0] 最後一頁