Files
gold_dolphin/unity/Assets/UI/DebugResultButtons.cs
T
2026-07-04 15:50:39 +08:00

84 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
namespace GameFramework
{
/// <summary>
/// 调试工具 —— 在 Gameplay 场景中显示"胜利"和"失败"按钮,
/// 点击后直接触发 GameManager.Win() 或 GameManager.GameOver()。
/// 测试完成后删除此脚本。
/// </summary>
public class DebugResultButtons : MonoBehaviour
{
private string _debugLog = "";
private void OnGUI()
{
// 左上角显示调试信息(大字体,黄色)
GUIStyle debugStyle = new GUIStyle(GUI.skin.label);
debugStyle.fontSize = 18;
debugStyle.normal.textColor = Color.yellow;
debugStyle.fontStyle = FontStyle.Bold;
// 调试信息背景
GUI.Box(new Rect(5, 5, 500, 85), "");
GUI.Label(new Rect(10, 10, 480, 25), $"GameManager.Instance: {(GameManager.Instance != null ? "【存在】" : "null - 缺失!")}", debugStyle);
GUI.Label(new Rect(10, 35, 480, 25), $"GameState: {GameManager.GameState}", debugStyle);
if (!string.IsNullOrEmpty(_debugLog))
{
GUIStyle logStyle = new GUIStyle(GUI.skin.label);
logStyle.fontSize = 16;
logStyle.normal.textColor = Color.green;
logStyle.fontStyle = FontStyle.Bold;
GUI.Label(new Rect(10, 60, 580, 25), _debugLog, logStyle);
}
// 右上角显示两个按钮
float x = Screen.width - 220;
float y = 10;
GUIStyle style = new GUIStyle(GUI.skin.button);
style.fontSize = 20;
style.fontStyle = FontStyle.Bold;
// 胜利按钮(绿色)
GUI.backgroundColor = new Color(0.2f, 0.8f, 0.2f, 0.9f);
if (GUI.Button(new Rect(x, y, 100, 50), "胜利", style))
{
if (GameManager.Instance == null)
{
_debugLog = "[错误] GameManager.Instance 为 null";
Debug.LogError("[DebugResultButtons] GameManager.Instance 为 null");
}
else
{
_debugLog = $"[调用] Win() - 时间: {Time.time:F2}";
Debug.Log("[DebugResultButtons] 调用 GameManager.Win()");
GameManager.Win();
}
}
// 失败按钮(红色)
GUI.backgroundColor = new Color(0.8f, 0.2f, 0.2f, 0.9f);
if (GUI.Button(new Rect(x + 110, y, 100, 50), "失败", style))
{
if (GameManager.Instance == null)
{
_debugLog = "[错误] GameManager.Instance 为 null";
Debug.LogError("[DebugResultButtons] GameManager.Instance 为 null");
}
else
{
_debugLog = $"[调用] GameOver() - 时间: {Time.time:F2}";
Debug.Log("[DebugResultButtons] 调用 GameManager.GameOver()");
GameManager.GameOver();
}
}
// 重置颜色
GUI.backgroundColor = Color.white;
}
}
}