1
0
Fork 0
LaboratoryProtection/Assets/UnityTest/ZXL/Scripts/ObjectComponent.cs

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();
}
}
}