2015年5月26日 星期二

Unity:如何查找 Mono 版本

前陣子讀到一篇關於 Unity 的 C# 效能改善的文章「C# memory and performance tips for Unity」,文中說明了記憶體資料儲存與GC(garbage collector)對效能的影響,而新的 GC 方法將比較快且避免造成程序運作暫停的現象,文中提到不幸的是 Unity 使用的 Mono 版本是 2.6.5,他使用較古老的 Boehm GC,這時讓人出現一個疑問,如何知道自己使用的 Unity 所使用的 Mono 版本呢?

上網搜尋似乎沒有什麼資料列出各版本 Unity 的 Mono 版本,不過,我們可以透過以下程式碼來查看。

using UnityEngine;
using System;
using System.Reflection;

public class TestVersion : MonoBehaviour {

    void Start () {

        Type type = Type.GetType("Mono.Runtime");
        if (type != null){
                                       
            MethodInfo displayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);

            if (displayName != null){
                Debug.Log(displayName.Invoke(null, null));
            }
        }
    }
}



完成以上的程式之後,把它放在任何一個場景中的遊戲物件上,執行遊戲就可以在 Console view 看到目前所使用 Unity 的 Mono 版本。

查找出版號之後,我們就能配合版本查找一些相關的 Mono 資料,也許對於學習、開發上會有些幫助吧!
但最實在的還是在實作開發上養成好習慣,避免效能及資源上的不必要花費比較好。