#if UNITY_EDITOR
|
using UnityEditor;
|
using UnityEngine;
|
|
public class TestSkillActionEditorWindow : EditorWindow
|
{
|
protected int skillId = 1;
|
protected int hurtIndex = 0;
|
|
protected int effectId = 0;
|
|
protected BattleEffectPlayer effectPlayer;
|
|
[MenuItem("Battle/TestSkillAction生成器")]
|
public static void ShowWindow()
|
{
|
GetWindow<TestSkillActionEditorWindow>("TestSkillAction生成器");
|
}
|
|
private void OnGUI()
|
{
|
GUILayout.Label("TestSkillAction参数设置", EditorStyles.boldLabel);
|
|
skillId = EditorGUILayout.IntField("Skill ID", skillId);
|
hurtIndex = EditorGUILayout.IntField("Hurt Index", hurtIndex);
|
effectId = EditorGUILayout.IntField("Effect ID", effectId);
|
|
|
if (GUILayout.Button("生成并播放 TestSkillAction"))
|
{
|
PlayTestSkillAction();
|
}
|
|
if (GUILayout.Button("复位RecordPlayer"))
|
{
|
ResetRecordPlayer();
|
}
|
|
if (GUILayout.Button("展示特效"))
|
{
|
|
}
|
}
|
|
protected void ShowEffect()
|
{
|
if (effectId <= 0)
|
{
|
Debug.LogWarning("Effect ID 必须大于0");
|
return;
|
}
|
|
if (EffectConfig.Get(effectId) == null)
|
{
|
Debug.LogWarning($"Effect ID {effectId} 在配置表中不存在");
|
return;
|
}
|
|
HomeWin homeWin = UIManager.Instance.GetUI<HomeWin>();
|
|
effectPlayer = BattleEffectPlayer.Create(effectId, homeWin.transform);
|
effectPlayer.Play();
|
}
|
|
protected void DestroyEffect()
|
{
|
if (effectPlayer != null)
|
{
|
effectPlayer.Stop();
|
GameObject.DestroyImmediate(effectPlayer.gameObject);
|
effectPlayer = null;
|
}
|
}
|
|
private void PlayTestSkillAction()
|
{
|
if (!Application.isPlaying)
|
{
|
Debug.LogWarning("请在运行时使用该功能!");
|
return;
|
}
|
|
var battleField = BattleManager.Instance.storyBattleField;
|
if (battleField == null || battleField.recordPlayer == null)
|
{
|
Debug.LogError("BattleManager.storyBattleField 或 recordPlayer 未初始化!");
|
return;
|
}
|
|
var action = new TestSkillAction(battleField, skillId, hurtIndex);
|
battleField.recordPlayer.PlayRecord(action);
|
Debug.Log($"已生成并播放 TestSkillAction: skillId={skillId}, hurtIndex={hurtIndex}");
|
}
|
|
private void ResetRecordPlayer()
|
{
|
if (!Application.isPlaying)
|
{
|
Debug.LogWarning("请在运行时使用该功能!");
|
return;
|
}
|
|
var battleField = BattleManager.Instance.storyBattleField;
|
if (battleField == null || battleField.recordPlayer == null)
|
{
|
Debug.LogError("BattleManager.storyBattleField 或 recordPlayer 未初始化!");
|
return;
|
}
|
|
battleField.recordPlayer.HaveRest();
|
Debug.Log("RecordPlayer已复位!");
|
}
|
}
|
#endif
|