[程式] Unity遇到List初始化器就閃退?

看板GameDesign (遊戲設計)作者 (WASHI)時間5年前 (2019/12/03 14:46), 5年前編輯推噓5(504)
留言9則, 5人參與, 5年前最新討論串1/2 (看更多)
各位學長好 最近在寫Unity的時候發現一個問題 只要我用List初始化器去設定類別的屬性欄位 並在建立物件時就會閃退 例如: public List<Duck> ducks = new List<Duck>() { new Duck() { Kind = KindOfDuck.Decoy, Size = 17 }, }; Visual Studio裡面也沒出現錯誤 (把初始化器的內容刪除就不會閃退) 但是如果是下面這種用法就又不會閃退 public List<string> Test = new List<string>() { "100", "200", }; 如下例,單純C#可以執行 但掛在Unity底下就會導致整個Unity閃退 https://dotnetfiddle.net/QbNFrt 請問這是Unity的限制還是個案呢? 不能用初始化器感覺好麻煩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.120.238 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1575355606.A.238.html

12/03 19:11, 5年前 , 1F
use [SerilizeField]?
12/03 19:11, 1F
[SerializeField]是用在屬性嗎? 如果是的話我用了一樣會閃退

12/03 20:37, 5年前 , 2F
多一對括號應該編譯不過吧
12/03 20:37, 2F

12/03 21:54, 5年前 , 3F
請問多一對括號是指?
12/03 21:54, 3F
原本以為是電腦的問題 回家嘗試了之後發現一樣也閃退 好奇怪啊... ※ 編輯: berice152233 (106.105.207.206 臺灣), 12/03/2019 22:05:54

12/03 22:27, 5年前 , 4F
有試過在Duck寫Constructor然後在mew List<Duck>的時
12/03 22:27, 4F

12/03 22:27, 5年前 , 5F
候使用嗎
12/03 22:27, 5F
有! 寫好建構子之後,在List初始化器中 new Duck(KindOfDuck.Decoy,17), 這樣也是會閃退 大家的Unity都沒這個問題嗎? ※ 編輯: berice152233 (106.105.207.206 臺灣), 12/03/2019 22:49:28 以下是我弄來重現問題的程式 https://imgur.com/hT1pRsD
結果發現這樣的錯誤碼 StackOverflowException: The requested operation caused a stack overflow. 但還是搞不懂原因 ※ 編輯: berice152233 (106.105.207.206 臺灣), 12/03/2019 23:02:03

12/03 23:06, 5年前 , 6F
這樣好像是無限迴圈的問題
12/03 23:06, 6F

12/03 23:14, 5年前 , 7F
你new一個類別然後自己的list又new了自己
12/03 23:14, 7F

12/03 23:14, 5年前 , 8F
就變成無限迴圈了
12/03 23:14, 8F
啊!非常感謝 我真的是犯了一個很基礎的錯誤 ※ 編輯: berice152233 (106.105.207.206 臺灣), 12/03/2019 23:25:52

12/04 01:07, 5年前 , 9F
你範例的第一行 new 後面就多一對括號啊 XD
12/04 01:07, 9F
文章代碼(AID): #1TvWJM8u (GameDesign)
文章代碼(AID): #1TvWJM8u (GameDesign)