三国卡牌客户端基础资源仓库
yyl
2025-08-29 3b895f5ab8d619719e8e67795db093cd83dcc66c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#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