public static void Convert(FighterObject obj) { string objPath = AssetDatabase.GetAssetPath(obj); string directory = Path.GetDirectoryName(objPath); if (!AssetDatabase.IsValidFolder(directory + "/" + obj.name)) { AssetDatabase.CreateFolder(directory, obj.name); } string folderPath = directory + "/" + obj.name + "/"; foreach (Move m in obj.moves) { string name = m.name; LZFighterStateData data = ScriptableObject.CreateInstance <LZFighterStateData>(); AssetDatabase.CreateAsset(data, folderPath + name + ".asset"); data.name = m.name; data.velocity = m.velocity; foreach (FighterState frame in m.frames) { LZFighterFrame f = new LZFighterFrame(); f.frameType = (LZFighterFrame.Type)frame.frameType; f.velocity = frame.velocity; f.sprite = frame.sprite; f.time = frame.time; foreach (HitBox hb in frame.hitboxes) { f.hitboxes.Add(new HitBox(hb)); } data.frames.Add(f); } } }
public static void Open(LZFighterStateData data) { LZFighterStateEditor window = EditorWindow.GetWindow <LZFighterStateEditor>(); window.data = data; window.Init(); window.Show(); }
public void DrawState(StateMachineNode state) { if (state.IsShortcut) { DrawShortcut(state); return; } LabelTitle(state.name); state.data = (LZFighterStateData)EditorGUILayout.ObjectField(state.data, typeof(LZFighterStateData), false); if (state.data != null && state.name == "") { state.name = state.data.name; } // Edit instance if (GUILayout.Button("Edit")) { if (state.data == null) { LZFighter fighter = LZFighterEditor.Instance.fighter; string path = AssetDatabase.GetAssetPath(fighter); string filename = Path.GetFileNameWithoutExtension(path); string directory = Path.GetDirectoryName(path); if (!AssetDatabase.IsValidFolder(directory + "/" + filename)) { AssetDatabase.CreateFolder(directory, filename); } LZFighterStateData newData = ScriptableObject.CreateInstance <LZFighterStateData>(); AssetDatabase.CreateAsset(newData, directory + "/" + filename + "/" + state.name + ".asset"); Debug.Log(Path.GetDirectoryName(path)); state.data = newData; } LZFighterStateEditor.Open(state.data); } string currentName = state.name; string newName = EditorGUILayout.TextField("Name:", currentName); /*if (currentName != newName && state.data != null) { * AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(state.data), newName); * }*/ state.name = newName; state.velocity = EditorGUILayout.Vector2Field("StateVelocity: ", state.velocity); if (state.data != null) { state.data.velocity = EditorGUILayout.Vector2Field("DataVelocity:", state.data.velocity); } state.invert = EditorGUILayout.Toggle("Invert", state.invert); state.loop = EditorGUILayout.Toggle("Loop", state.loop); GUITools.ScriptListField(state.scripts, fighter); }
public void SetState(LZFighterStateData data) { this.fighterState = data; }