UNITY 中List.Sort的BUG
生活随笔
收集整理的這篇文章主要介紹了
UNITY 中List.Sort的BUG
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UNITY 中List.Sort的BUG
List<int> lst = new List<int>();lst.Add(202);lst.Add(20);lst.Add(40);lst.Add(230);lst.Add(220);lst.Add(240);lst.Sort((m1, m2) =>{return m1 > m2 ? 1 : -1;});如上這段排序代碼,在VS2015控制臺程序下運行,排序完全正確。
然而放在UNITY的Start()函數中運行,排序只排了前兩個元素。
原因竟然是UNTIY 的BUG:排序函數必須返回 1,0,-1三種情況,只返回兩種情況則排序不正確。
然而普通C#控制臺程序是沒有問題的,可見UNITY有多坑。
保證UNITY上排序正確的寫法如下:
void Start () {List<int> lst = new List<int>();lst.Add(202);lst.Add(20);lst.Add(40);lst.Add(230);lst.Add(220);lst.Add(240);lst.Sort((m1, m2) =>{if (m1 > m2)return 1;if (m1 < m2)return -1;return 0;//return m1.CompareTo(m2); //或者這樣寫
});}?
posted on 2017-06-06 18:21 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
以上是生活随笔為你收集整理的UNITY 中List.Sort的BUG的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#委托(匿名函数)的各种变形写法
- 下一篇: UNITY polygon collid