68 lines
2.5 KiB
C#
68 lines
2.5 KiB
C#
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<TextMeshProUGUI>().fontSize *= textScaleFactor;
|
|
selectedImage = images[0];
|
|
selectedText = images[0].GetComponentInChildren<TextMeshProUGUI>();
|
|
// 为每个图片添加点击事件
|
|
foreach (Image img in images)
|
|
{
|
|
EventTrigger trigger = img.gameObject.AddComponent<EventTrigger>(); // 添加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); // 设置为你希望的颜色
|
|
|
|
EnterImageUIChange enterImageUIChange = newImage.gameObject.GetComponent<EnterImageUIChange>();
|
|
if (enterImageUIChange!=null)
|
|
{
|
|
enterImageUIChange.exitColor = newImage.color;
|
|
}
|
|
|
|
// 获取当前选中图片的子对象中的Text或TMP_Text组件
|
|
TextMeshProUGUI newText = newImage.GetComponentInChildren<TextMeshProUGUI>(); // 如果使用TextMesh Pro
|
|
if (newText != null)
|
|
{
|
|
newText.fontSize *= textScaleFactor; // 放大文字
|
|
}
|
|
|
|
// 更新选中图片和文字
|
|
selectedImage = newImage;
|
|
selectedText = newText;
|
|
}
|
|
}
|