Beispiel #1
0
        private void CreateActor(GameObject model)
        {
            string fn = XXToolsEditorGlobal.DB_ACTOR_PATH + model.name + ".prefab";

            if (XXToolsEdUtil.RelativeFileExist(fn))
            {
                fn = AssetDatabase.GenerateUniqueAssetPath(fn);
            }

            GameObject go = PrefabUtility.CreatePrefab(fn, model);

            XXToolsEditorGlobal.DB.actorsPrefabs.Add(go);
            EditorUtility.SetDirty(XXToolsEditorGlobal.DB);
            AssetDatabase.SaveAssets();


            Actor actor = go.AddComponent <Actor>();

            // 扫描 skinnedMesh
            SkinnedMeshRenderer [] smrs = model.GetComponentsInChildren <SkinnedMeshRenderer>();

            List <Actor.ActorComponent> acList = new List <Actor.ActorComponent>();

            foreach (SkinnedMeshRenderer smr in smrs)
            {
                string[]             strs   = smr.name.Split('_');
                string               endStr = "_" + strs[strs.Length - 1];
                Actor.ActorComponent ac     = new Actor.ActorComponent(strs[strs.Length - 1], endStr, smr);
                acList.Add(ac);
            }

            actor.InitActor(actor.gameObject, acList);
        }
Beispiel #2
0
        public static bool LoadDatabase(bool silent = false)
        {
            if (XXToolsEditorGlobal._db != null)
            {
                return(true);
            }

            if (!XXToolsEdUtil.RelativeFileExist(DB_FILE))
            {
                Debug.LogError("You must first create a Database. From the menu, select: Window -> XXTools -> Database");
                if (!silent)
                {
                    EditorUtility.DisplayDialog("Warning", "You must first create a Database. From the menu, select: Window -> XXTools -> Database", "Close");
                }
                return(false);
            }
            else
            {
                GameObject go = AssetDatabase.LoadAssetAtPath(DB_FILE, typeof(GameObject)) as GameObject;
                XXToolsEditorGlobal._db = go.GetComponent <Database>();
                if (_db != null)
                {
                    PerformAfterDBLoaded(_db);
                    return(true);
                }
            }
            return(false);
        }
Beispiel #3
0
 public static void LoadOrCreateDatabase()
 {
     if (!XXToolsEdUtil.RelativeFileExist(DB_FILE))
     {
         CreateDatabase();
     }
     else
     {
         GameObject go = AssetDatabase.LoadAssetAtPath(DB_FILE, typeof(GameObject)) as GameObject;
         _db = go.GetComponent <Database>();
         PerformAfterDBLoaded(_db);
     }
 }