forked from zxl/LaboratoryProtection
47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using System;
|
|
using Mono.Event;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI.Extensions;
|
|
|
|
namespace UnityTest.ZXL
|
|
{
|
|
public class ObjectComponent : MonoBehaviour, IPointerClickHandler
|
|
{
|
|
/// <summary>
|
|
/// 当前物体的名字(可能存在名字对不上的情况,需要进行深度查找)
|
|
/// </summary>
|
|
public string objectName;
|
|
|
|
/// <summary>
|
|
/// 描述
|
|
/// </summary>
|
|
public string desc;
|
|
|
|
public bool isCanClick;
|
|
|
|
public void Clicked()
|
|
{
|
|
Debug.Log($"点击了{objectName}");
|
|
Enum.TryParse(objectName, out HighlightObjectType highlightObjectType);
|
|
EventManager.Instance.FireNow(this, new ClickObjectEventArgs(this, highlightObjectType));
|
|
this.gameObject.HighlightOff();
|
|
}
|
|
|
|
#if UNITY_EDITOR
|
|
[Button]
|
|
void Add(HighlightObjectType highlightObjectType)
|
|
{
|
|
var component = gameObject.GetOrAddComponent<EventTrigger>();
|
|
objectName = highlightObjectType.ToString();
|
|
}
|
|
#endif
|
|
public void OnPointerClick(PointerEventData eventData)
|
|
{
|
|
if (!isCanClick) return;
|
|
isCanClick = false;
|
|
Clicked();
|
|
}
|
|
}
|
|
} |