using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using System;
|
|
using UnityEngine.UI;
|
|
|
|
public class ButtonExtend : Button, IPointerClickHandler, ISubmitHandler, 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 override void OnPointerDown(PointerEventData eventData)
|
|
{
|
|
base.OnPointerDown(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 override void OnPointerUp(PointerEventData eventData)
|
|
{
|
|
base.OnPointerUp(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);
|
|
}
|
|
}
|