using UnityEngine; using TMPro; // 答案选项类,负责显示和管理单个答案的行为 public class AnswerOption : MonoBehaviour { // 显示答案文本的TextMeshPro组件 [SerializeField] private TextMeshPro answerText; // 当前答案的数值 private int answerValue; // 数学测验管理器的引用 private MathQuizManager quizManager; // 答案选项上浮的速度 private float floatSpeed; // 答案选项的存活时间 private float lifeTime; // Unity生命周期方法,初始化时调用 void Start() { // 如果answerText为空,尝试在子对象中查找TextMeshPro组件 if (answerText == null) { answerText = GetComponentInChildren(); if (answerText == null) { // 如果依然找不到,输出错误日志 Debug.LogError("AnswerOption: No TextMeshPro component found! Please add a TextMeshPro component to this object or its children."); } } } // 初始化答案选项,设置管理器、数值、是否正确等 public void Initialize(MathQuizManager manager, int value, bool correct) { quizManager = manager; // 记录管理器引用 answerValue = value; // 设置答案数值 if (answerText != null) { answerText.text = value.ToString(); // 显示答案文本 } floatSpeed = manager.floatSpeed; // 获取上浮速度 lifeTime = manager.answerLifeTime; // 获取存活时间 // 设置自动销毁,lifeTime秒后销毁自身 Destroy(gameObject, lifeTime); } // 鼠标点击事件,检测答案是否正确 void OnMouseDown() { if (quizManager != null) { quizManager.CheckAnswer(this); // 通知管理器检查答案 Destroy(gameObject); // 点击后销毁自身 } } // 获取当前答案的数值 public int GetAnswerValue() { return answerValue; } }