using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using UnityEngine.EventSystems; namespace vnxbqy.UI { [RequireComponent(typeof(BoxCollider))] public class TreasureInteractProcessor : MonoBehaviour, IPointerClickHandler { [NonSerialized] public int treasureId; [SerializeField] Vector3 m_Scale = new Vector3(1.8f, 5f, 0.1f); BoxCollider collider; private void Awake() { collider = GetComponent(); collider.size = m_Scale; } public void OnPointerClick(PointerEventData eventData) { List results = new List(); EventSystem.current.RaycastAll(eventData, results); if (results != null) { var index = results.FindIndex((x) => { return x.gameObject.GetComponent() != null; }); if (index != -1) { DebugEx.Log("法宝UI事件拦截"); return; } } UI3DTreasureSelectStage.Instance.OnPointDownTreasure(treasureId); } public void SetActive(bool _active) { enabled = _active; collider.enabled = _active; if (_active) { LayerUtility.SetLayer(this.gameObject, LayerUtility.UILayer, true); } } #if UNITY_EDITOR private void OnValidate() { collider.size = m_Scale; } #endif } }