Unityのversionによって起動時にダイアログで警告を出すEditorScript書いた
versionが足りないと、以下の様な表示を出す様にした
取り急ぎ、version比較条件書き換えて表示させた
必要なAPI
Unity起動時に、
[InitializeOnLoad]
Attributeを付けたクラスのコンストラクタを呼んでくれる。 InitializeOnLoadのリファレンスあと、Unityのversionは、
Application.unityVersion
で取得出来る
(4.2.0なら4.2.0f4と表示されるので、versionを比較する時にSpilitする必要はあると思う)
とりあえず以下にコードの片鱗を貼っておく。
なんかx.x.xの様なversion表記をよしなにParseする社内のコードがあったので、それ使っちゃったからハショってる
using UnityEngine; using UnityEditor; using System; using System.Collections; /// <summary> /// Initialize editor invokes. /// 今後使いそうなのでInterfeceのみ置いておく. /// </summary> [InitializeOnLoad] public class OnOpenUnityEditor : Editor { private static string requiredUnityVersion = "4.2.0"; /// Unityを起動した時のみstaticなConstructorが呼ばれる. static OnOpenUnityEditor() { // 起動して少し間を置く if (EditorApplication.timeSinceStartup < 10) { Debug.Log ("Initialized UnityEditor"); // some initialize code UnityVersionCheck(); } } static void UnityVersionCheck() { #if UNITY_EDITOR string diagDescription = "expected version:" + requiredUnityVersion + "\n your version:" + currentVersionStr + "\n Update unity version?"; if (currentVersion < requiredVersion) { if (UnityEditor.EditorUtility.DisplayDialog("Version is not enough", diagDescription, "Update required version", "Exit unity")) { Debug.Log("Open -> " + "http://japan.unity3d.com/unity/download/archive"); Application.OpenURL("http://japan.unity3d.com/unity/download/archive"); } else { Debug.Log("Quit"); Application.Quit(); } } #endif } }
まとめ
- プロジェクトで、継続的にUnityで作業しない、パラメータ調整だけする人とかがたまにUnityを触ると、稀にversionが足りないだけ不具合があったりして、原因の究明に少し時間かかったりするかもなので、雑だけど作ってみた