p_chinのおっぱいブログ

UnityとPerlなど

Unityのversionによって起動時にダイアログで警告を出すEditorScript書いた

versionが足りないと、以下の様な表示を出す様にした

取り急ぎ、version比較条件書き換えて表示させた

必要なAPI

(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が足りないだけ不具合があったりして、原因の究明に少し時間かかったりするかもなので、雑だけど作ってみた