private void _GUITabsCreator() { GUILayout.Space(10f); EditorGUILayout.LabelField("Select an animator to instantiate :", EditorStyles.boldLabel); GUILayout.Space(10f); AnimPrefabsData animPrefabsData = _FindAnimPrefabsDataInProject(); Animator[] animPrefabs = animPrefabsData.animPrefabsArr; if (null != animPrefabs && animPrefabs.Length > 0) { foreach (Animator animatorPrefab in animPrefabs) { if (GUILayout.Button(animatorPrefab.name)) { _selectedAnimatorToCreate = animatorPrefab; } } } if (_selectedAnimatorToCreate != null) { GUILayout.Space(30f); _instantiatePosition = EditorGUILayout.Vector3Field("To position : ", _instantiatePosition); GUILayout.Space(10f); if (GUILayout.Button("Create " + _selectedAnimatorToCreate)) { Instantiate(_selectedAnimatorToCreate, _instantiatePosition, new Quaternion(0f, 180f, 0f, 0f)); } } }
private AnimPrefabsData _FindAnimPrefabsDataInProject() { string[] fileGuidsArr = AssetDatabase.FindAssets("t: " + typeof(AnimPrefabsData)); //Trouve les assets par leur guid if (fileGuidsArr.Length > 0) { string assetPath = AssetDatabase.GUIDToAssetPath(fileGuidsArr[0]); return(AssetDatabase.LoadAssetAtPath <AnimPrefabsData>(assetPath)); } else { AnimPrefabsData animPrefabsData = ScriptableObject.CreateInstance <AnimPrefabsData>(); AssetDatabase.CreateAsset(animPrefabsData, "Assets/AnimPrefabsData.asset"); AssetDatabase.SaveAssets(); return(animPrefabsData); } }