static void SkillOpener() { XInnerEditor.OpenSkill(); }
public override void OnInspectorGUI() { if (_labelstyle == null) { _labelstyle = new GUIStyle(EditorStyles.boldLabel); _labelstyle.fontSize = 13; } if (_myLabelStyle2 == null) { _myLabelStyle2 = new GUIStyle(GUI.skin.label); _myLabelStyle2.fontStyle = FontStyle.Italic; } /*****Camera Settings*****/ GUILayout.Label("Camera Settings :", _labelstyle); _hoster.defaultFov = EditorGUILayout.FloatField("Field of View", _hoster.defaultFov); /*****Base Settings*****/ GUILayout.Label("Basic Settings :", _labelstyle); EditorGUILayout.LabelField("Data File", _hoster.SkillDataExtra.ScriptFile); EditorGUILayout.LabelField("Data Path", _hoster.SkillDataExtra.ScriptPath); _hoster.ConfigData.Speed = EditorGUILayout.FloatField("Speed", _hoster.ConfigData.Speed); _hoster.ConfigData.RotateSpeed = EditorGUILayout.FloatField("Rotate Speed", _hoster.ConfigData.RotateSpeed); EditorGUILayout.Space(); _hoster.EditorData.XFrameByFrame = EditorGUILayout.Toggle("Frame By Frame", _hoster.EditorData.XFrameByFrame); EditorGUILayout.Space(); /*****Skill Settings*****/ GUILayout.Label("Skill Settings :", _labelstyle); if (_hoster.SkillData.TypeToken != 2) { EditorGUI.BeginChangeCheck(); AnimationClip clip = EditorGUILayout.ObjectField("Clip", _hoster.SkillDataExtra.SkillClip, typeof(AnimationClip), true) as AnimationClip; if (EditorGUI.EndChangeCheck() && clip != null) { _hoster.SkillDataExtra.SkillClip = clip; _hoster.ConfigData.SkillClip = AssetDatabase.GetAssetPath(clip); _hoster.ConfigData.SkillClipName = clip.name; } EditorGUILayout.LabelField("Clip Name", _hoster.ConfigData.SkillClip); if (_hoster.SkillDataExtra.SkillClip != null) { _hoster.SkillDataExtra.SkillClip_Frame = (_hoster.SkillDataExtra.SkillClip.length / frame); } } EditorGUILayout.LabelField("Clip Length", (_hoster.SkillDataExtra.SkillClip_Frame * frame).ToString("F3") + "s" + "\t" + _hoster.SkillDataExtra.SkillClip_Frame.ToString("F1") + "(frame)"); EditorGUILayout.Space(); if (_hoster.SkillData.TypeToken == 2) { _hoster.SkillDataExtra.SkillClip_Frame = 0; } _hoster.SkillData.NeedTarget = EditorGUILayout.Toggle("Need Target", _hoster.SkillData.NeedTarget); _hoster.SkillData.OnceOnly = EditorGUILayout.Toggle("Once Only", _hoster.SkillData.OnceOnly); _hoster.SkillData.IgnoreCollision = EditorGUILayout.Toggle("Disable Collision", _hoster.SkillData.IgnoreCollision); EditorGUILayout.Space(); _hoster.SkillData.Time = EditorGUILayout.FloatField("Skill Time", _hoster.SkillData.Time); _hoster.SkillData.CoolDown = EditorGUILayout.FloatField("Cool Down", _hoster.SkillData.CoolDown); _hoster.SkillData.TypeToken = EditorGUILayout.Popup("Skill Type", _hoster.SkillData.TypeToken, XSkillData.Skills); if (_hoster.SkillData.TypeToken != 2 && _hoster.SkillDataExtra.SkillClip == null) { return; } if (_hoster.SkillData.TypeToken == 0) { _hoster.SkillData.SkillPosition = (int)EditorGUILayout.Popup("Position", _hoster.SkillData.SkillPosition, XSkillData.JA_Command); if (!_xOptions.Contains("Combos")) { _xOptions.Insert(2, "Combos"); } } else if (_hoster.SkillData.TypeToken != 2) { if (_xOptions.Contains("Combos")) { _xOptions.Remove("Combos"); } } EditorGUILayout.Space(); _hoster.SkillData.Cast_Range_Rect = EditorGUILayout.Toggle("Cast Range Rect", _hoster.SkillData.Cast_Range_Rect); if (_hoster.SkillData.Cast_Range_Rect) { _hoster.SkillData.Cast_Scope = EditorGUILayout.FloatField("Cast Range Width", _hoster.SkillData.Cast_Scope); _hoster.SkillData.Cast_Range_Upper = EditorGUILayout.FloatField("Cast Range Depth", _hoster.SkillData.Cast_Range_Upper); _hoster.SkillData.Cast_Offset_X = EditorGUILayout.FloatField("Cast Offset X", _hoster.SkillData.Cast_Offset_X); _hoster.SkillData.Cast_Offset_Z = EditorGUILayout.FloatField("Cast Offset Z", _hoster.SkillData.Cast_Offset_Z); EditorGUILayout.LabelField("Positive means Clock-wise.", _myLabelStyle2); _hoster.SkillData.Cast_Scope_Shift = EditorGUILayout.FloatField("Cast Rect Shift", _hoster.SkillData.Cast_Scope_Shift); } else { _hoster.SkillData.Cast_Range_Lower = EditorGUILayout.FloatField("Cast Range (↓)", _hoster.SkillData.Cast_Range_Lower); _hoster.SkillData.Cast_Range_Upper = EditorGUILayout.FloatField("Cast Range (↑)", _hoster.SkillData.Cast_Range_Upper); _hoster.SkillData.Cast_Scope = EditorGUILayout.FloatField("Cast Scope", _hoster.SkillData.Cast_Scope); _hoster.SkillData.Cast_Offset_X = EditorGUILayout.FloatField("Cast Offset X", _hoster.SkillData.Cast_Offset_X); _hoster.SkillData.Cast_Offset_Z = EditorGUILayout.FloatField("Cast Offset Z", _hoster.SkillData.Cast_Offset_Z); EditorGUILayout.LabelField("Positive means Clock-wise.", _myLabelStyle2); _hoster.SkillData.Cast_Scope_Shift = EditorGUILayout.FloatField("Cast Scope Shift", _hoster.SkillData.Cast_Scope_Shift); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); _hoster.SkillData.CameraTurnBack = EditorGUILayout.FloatField("Camera Tail Speed Ratio", _hoster.SkillData.CameraTurnBack); EditorGUILayout.LabelField("(multiplied by)", GUILayout.MaxWidth(90)); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); bool MultipleAttackSupported = _hoster.SkillData.MultipleAttackSupported; _hoster.SkillData.MultipleAttackSupported = EditorGUILayout.Toggle("Multiple Direction", _hoster.SkillData.MultipleAttackSupported); if (!MultipleAttackSupported && _hoster.SkillData.MultipleAttackSupported) { _hoster.SkillData.MultipleAttackSupported = EditorUtility.DisplayDialog("Confirm your selection.", "Multiple direction needs 8 attacking-animations support!", "Confirmed", "Cancel"); } if (_hoster.SkillData.MultipleAttackSupported) { _hoster.SkillData.BackTowardsDecline = EditorGUILayout.Slider("Backwards Decline", _hoster.SkillData.BackTowardsDecline, 0, 1); } EditorGUILayout.Space(); EditorGUILayout.Space(); /*****Timer*****/ GUILayout.Label("Timer :", _labelstyle); EditorGUILayout.BeginHorizontal(); if (_hoster.SkillData.TypeToken == 2) { _option = EditorGUILayout.Popup("Create", _option, new string[] { "Combined", "Fx", "Audio", "Camera Shake" }); } else { _option = EditorGUILayout.Popup("Create", _option, _xOptions.ToArray()); } if (GUILayout.Button(_content_add, GUILayout.MaxWidth(30))) { if (_hoster.SkillData.TypeToken == 2) { switch (_option) { case 1: _fx.Add(); break; } } else { switch (_option) { case 0: _result.Add(); break; case 1: _hit.Add(); break; case 2: _manip.Add(); break; case 3: _fx.Add(); break; case 4: _warning.Add(); break; case 5: _mob.Add(); break; } } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (_hoster.SkillData.TypeToken == 2) { _hit.OnGUI(); EditorGUILayout.Space(); _fx.OnGUI(); EditorGUILayout.Space(); } else { foreach (XPanel panel in _panels) { panel.OnGUI(); EditorGUILayout.Space(); } } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Apply", GUILayout.MaxWidth(150))) { SerializeData(GetDataFileWithPath()); } EditorGUILayout.Space(); if (GUILayout.Button("Revert", GUILayout.MaxWidth(150))) { DeserializeData(GetDataFileWithPath()); } if (!string.IsNullOrEmpty(last_file)) { EditorGUILayout.Space(); if (GUILayout.Button("Open Last", GUILayout.MaxWidth(150))) { next_file = last_file; } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); XDataBuilder.singleton.Update(_hoster); /*Repaint();*/ if (!string.IsNullOrEmpty(next_file)) { if (EditorUtility.DisplayDialog("Open new skill", "Do you want to save current skill?", "Do", "Do Not")) { SerializeData(GetDataFileWithPath()); } last_file = GetDataFileWithPath(); XInnerEditor.OpenSkill(next_file); next_file = null; } }