using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class ImageManager : MonoBehaviour { public Image[] images; // 在编辑器中将所有图片拖拽到这个数组中 private Image selectedImage; // 用来追踪当前选中的图片 private TextMeshProUGUI selectedText; // 用来追踪当前选中的图片的文字 private float textScaleFactor = 1.2f; // 设置文字变大时的缩放因子 void Start() { images[0].color = new Color32(0,255,200,255); // 设置为你希望的颜色 images[0].GetComponentInChildren().fontSize *= textScaleFactor; selectedImage = images[0]; selectedText = images[0].GetComponentInChildren(); // 为每个图片添加点击事件 foreach (Image img in images) { EventTrigger trigger = img.gameObject.AddComponent(); // 添加EventTrigger组件 EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; // 设置事件类型为点击 entry.callback.AddListener((eventData) => ChangeImageColorAndTextSize(img)); // 点击时调用ChangeImageColorAndTextSize trigger.triggers.Add(entry); } } void ChangeImageColorAndTextSize(Image newImage) { if (selectedImage != null) { // 将上一个选中的图片的颜色恢复为默认颜色 selectedImage.color = Color.white; // 恢复之前选中图片的文字大小 if (selectedText != null) { selectedText.fontSize /= textScaleFactor; // 恢复文字大小 } } // 改变当前选中图片的颜色 newImage.color = new Color32(0,255,200,255); // 设置为你希望的颜色 // 获取当前选中图片的子对象中的Text或TMP_Text组件 TextMeshProUGUI newText = newImage.GetComponentInChildren(); // 如果使用TextMesh Pro if (newText != null) { newText.fontSize *= textScaleFactor; // 放大文字 } // 更新选中图片和文字 selectedImage = newImage; selectedText = newText; } }