using UnityEngine; using UnityEngine.EventSystems; namespace LuaFramework { public class EmptyRaycastExtend : EmptyRaycast, IPointerDownHandler, IPointerUpHandler, IEventSystemHandler { [SerializeField] public bool scale_enabled = true; [SerializeField] public Transform scale_target = null; [SerializeField] public Vector3 press_scale = new Vector3(0.9f, 0.9f, 0.9f); [SerializeField] public Vector3 normal_scale = new Vector3(1f, 1f, 1f); private Vector3 original_scale; protected override void Awake() { base.Awake(); if (!scale_target) scale_target = transform; original_scale = transform.localScale; } public void SetTarget(Transform trans) { scale_target = trans; } public void SetOriginalSacle(Vector3 scale) { original_scale = scale; } public void SetPressScale(Vector3 scale) { press_scale = scale; } public void SetNormalScale(Vector3 scale) { normal_scale = scale; } public void OnPointerDown(PointerEventData eventData) { if (!scale_target || !scale_enabled) return; scale_target.transform.localScale = new Vector3(press_scale.x * original_scale.x, press_scale.y * original_scale.y, press_scale.z * original_scale.z); } public void OnPointerUp(PointerEventData eventData) { if (!scale_target || !scale_enabled) return; scale_target.transform.localScale = new Vector3(normal_scale.x * original_scale.x, normal_scale.y * original_scale.y, normal_scale.z * original_scale.z); } } }