コード例 #1
0
 public override void OnInspectorGUI()
 {
     if (GUILayout.Button("Open U.F.E Global Config"))
     {
         GlobalEditorWindow.Init();
     }
 }
コード例 #2
0
    public static void CreateAsset <T> () where T : ScriptableObject
    {
        T asset = ScriptableObject.CreateInstance <T> ();

        string path = AssetDatabase.GetAssetPath(Selection.activeObject);

        if (path == "")
        {
            path = "Assets";
        }
        else if (Path.GetExtension(path) != "")
        {
            path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), "");
        }

        string fileName;

        if (asset is MoveInfo)
        {
            fileName = "New Move";
        }
        else if (asset is CharacterInfo)
        {
            fileName = "New Character";
        }
        else if (asset.GetType().ToString().Equals("AIInfo"))
        {
            fileName = "New AI Instructions";
        }
        else if (asset is GlobalInfo)
        {
            fileName = "UFE_Config";
        }
        else
        {
            fileName = typeof(T).ToString();
        }
        string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/" + fileName + ".asset");

        AssetDatabase.CreateAsset(asset, assetPathAndName);

        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;

        if (asset is MoveInfo)
        {
            MoveEditorWindow.Init();
        }
        else if (asset is GlobalInfo)
        {
            GlobalEditorWindow.Init();
        }
        else if (asset.GetType().ToString().Equals("AIInfo"))
        {
            UFE.SearchClass("AIEditorWindow").GetMethod(
                "Init",
                BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy,
                null,
                null,
                null
                ).Invoke(null, new object[] {});
        }
        else if (asset is CharacterInfo)
        {
            CharacterEditorWindow.Init();
        }
    }
コード例 #3
0
    public static void CreateAsset <T> (T data = null, T oldFile = null) where T : ScriptableObject
    {
        T      asset         = ScriptableObject.CreateInstance <T> ();
        Object referencePath = Selection.activeObject;

        if (data != null)
        {
            asset = data;
            if (oldFile != null)
            {
                referencePath = oldFile;
            }
        }

        string path = AssetDatabase.GetAssetPath(referencePath);

        if (path == "")
        {
            path = "Assets";
        }
        else if (Path.GetExtension(path) != "")
        {
            path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(referencePath)), "");
        }

        string fileName;

        if (oldFile != null)
        {
            fileName = oldFile.name;
        }
        else if (asset is MoveInfo)
        {
            fileName = "New Move";
        }
        else if (asset is UFE3D.CharacterInfo)
        {
            fileName = "New Character";
        }
        else if (asset.GetType().ToString().Equals("UFE3D.AIInfo"))
        {
            fileName = "New AI Instructions";
        }
        else if (asset is GlobalInfo)
        {
            fileName = "New UFE Config";
        }
        else if (asset is StanceInfo)
        {
            fileName = "New Combat Stance";
        }
        else
        {
            fileName = typeof(T).ToString();
        }
        string assetPathAndName = oldFile != null? path + fileName + ".asset" : AssetDatabase.GenerateUniqueAssetPath(path + "/" + fileName + ".asset");

        if (!AssetDatabase.Contains(asset))
        {
            AssetDatabase.CreateAsset(asset, assetPathAndName);
        }

        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;

        if (asset is MoveInfo)
        {
            MoveEditorWindow.Init();
        }
        else if (asset is GlobalInfo)
        {
            GlobalEditorWindow.Init();
        }
        else if (asset.GetType().ToString().Equals("UFE3D.AIInfo"))
        {
            UFE.SearchClass("AIEditorWindow").GetMethod(
                "Init",
                BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy,
                null,
                null,
                null
                ).Invoke(null, new object[] {});
        }
        else if (asset is UFE3D.CharacterInfo)
        {
            CharacterEditorWindow.Init();
        }
    }