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