FM/Assets/Scripts/FUJIFILM/UI/Item/PhotoItemOperation.cs

137 lines
3.6 KiB
C#

using UnityEngine.UI;
using TMPro;
using UnityEngine;
using ZGame;
namespace HK.FUJIFILM
{
public class PhotoItemOperation : UIItemBase
{
[SerializeField] private Button btnToUp;
[SerializeField] private Button btnToDown;
[SerializeField] private Button btnRotate;
[SerializeField] private Button btnDelete;
[SerializeField] private Button btnClose;
CanvasGroup canvasGroup;
[SerializeField] private GameObject target;
public override void OnInit()
{
base.OnInit();
#region AutoGen_Init
btnToUp = GetValue<Button>("btnToUp");
btnToDown = GetValue<Button>("btnToDown");
btnRotate = GetValue<Button>("btnRotate");
btnDelete = GetValue<Button>("btnDelete");
btnClose = GetValue<Button>("btnClose");
btnToUp.onClick.AddListener(OnClickbtnToUp);
btnToDown.onClick.AddListener(OnClickbtnToDown);
btnRotate.onClick.AddListener(OnClickbtnRotate);
btnDelete.onClick.AddListener(OnClickbtnDelete);
btnClose.onClick.AddListener(OnClickbtnClose);
#endregion
canvasGroup = GetComponent<CanvasGroup>();
Close();
EventManager.Instance.Subscribe(PhotoItemOperationEventArgs.EventId, PhotoItemOperationEvent);
}
private void PhotoItemOperationEvent(object sender, GameEventArgs e)
{
return;
var args = e as PhotoItemOperationEventArgs;
if (args == null)
{
return;
}
if (args.isStart)
Open(args.target);
else
Close();
}
#region AutoGen_Method
private void OnClickbtnToUp()
{
var parent = target.transform.parent;
target.transform.SetSiblingIndex(parent.childCount - 1);
Close();
}
private void OnClickbtnToDown()
{
var siblingIndex = (target.transform.GetSiblingIndex() - 1) >= 0 ? target.transform.GetSiblingIndex() : 0;
target.transform.SetSiblingIndex(siblingIndex);
Close();
}
private void OnClickbtnRotate()
{
Close();
}
private void OnClickbtnDelete()
{
GameObject.Destroy(target);
Close();
}
private void OnClickbtnClose()
{
Close();
}
void Close()
{
target = null;
canvasGroup.alpha = 0;
canvasGroup.interactable = false;
canvasGroup.blocksRaycasts = false;
}
void Open(Transform ta)
{
if (ta == null)
{
return;
}
target = ta.gameObject;
canvasGroup.alpha = 1;
canvasGroup.interactable = true;
canvasGroup.blocksRaycasts = true;
}
#endregion
public override void OnDispose()
{
base.OnDispose();
#region AutoGen_Dispose
btnToUp.onClick.RemoveListener(OnClickbtnToUp);
btnToDown.onClick.RemoveListener(OnClickbtnToDown);
btnRotate.onClick.RemoveListener(OnClickbtnRotate);
btnDelete.onClick.RemoveListener(OnClickbtnDelete);
btnClose.onClick.RemoveListener(OnClickbtnClose);
btnToUp = null;
btnToDown = null;
btnRotate = null;
btnDelete = null;
btnClose = null;
#endregion
}
}
}