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); }
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); }
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); } }