public static void OnPostprocessAllAssets( string[] importedAssets , string[] deletedAssets , string[] movedAssets , string[] movedFromAssetPaths) { foreach (string assetName in importedAssets) { if (assetName.EndsWith(".gaf")) { byte[] fileBytes = null; using (BinaryReader freader = new BinaryReader(File.OpenRead(assetName))) { fileBytes = freader.ReadBytes((int)freader.BaseStream.Length); } if (fileBytes.Length > sizeof(int)) { int header = System.BitConverter.ToInt32(fileBytes.Take(4).ToArray(), 0); if (GAFHeader.isCorrectHeader((GAFHeader.CompressionType)header)) { var path = Path.GetDirectoryName(assetName) + "/" + Path.GetFileNameWithoutExtension(assetName) + ".asset"; var asset = AssetDatabase.LoadAssetAtPath(path, typeof(GAFAnimationAsset)) as GAFAnimationAsset; if (asset == null) { asset = ScriptableObject.CreateInstance <GAFAnimationAsset>(); asset = GAFAssetUtils.saveAsset(asset, path); } asset.name = Path.GetFileNameWithoutExtension(assetName); asset.initialize(fileBytes, AssetDatabase.AssetPathToGUID(path)); EditorUtility.SetDirty(asset); GAFResourceManager.createResources(asset); GAFTracking.sendAssetCreatedRequest(assetName); } } } } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); var nameProperty = serializedObject.FindProperty("m_Name"); GUILayout.Space(5f); EditorGUILayout.LabelField("Asset name: " + (!nameProperty.hasMultipleDifferentValues ? nameProperty.stringValue : "—"), EditorStyles.boldLabel); var loadedCount = targets.Where(_target => _target.isLoaded).Count(); if (loadedCount == targets.Count) { if (loadedCount == 1) { drawAssetData(); GUILayout.Space(5f); drawTimelines(); GUILayout.Space(5f); drawCreateClip(); GUILayout.Space(10f); drawAnimationColor(); GUILayout.Space(10f); drawResources(); } else { GUILayout.Space(5f); EditorGUILayout.HelpBox("Cannot view multiple asset settings.", MessageType.Info); GUILayout.Space(5f); drawCreateClip(); } } else if (loadedCount == 0) { GUILayout.Space(5f); EditorGUILayout.HelpBox("Asset(s) is(are) not loaded! Please reload asset(s) or reimport '.gaf' file.", MessageType.Warning); } else { GUILayout.Space(5f); EditorGUILayout.HelpBox("Some of assets are not loaded! Please reload asset(s) or reimport '.gaf' file.", MessageType.Warning); } GUI.enabled = loadedCount == targets.Count; EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Delete resources")) { foreach (var _target in targets) { GAFResourceManager.deleteResources(_target); } } if (GUILayout.Button("Rebuild resources")) { foreach (var _target in targets) { GAFResourceManager.createResources(_target); } } } EditorGUILayout.EndHorizontal(); GUI.enabled = true; }