FM/Assets/Scripts/FUJIFILM/UI/Other/ImageDesignItem.cs

89 lines
2.7 KiB
C#
Raw Normal View History

2025-08-20 11:14:21 +08:00
using System;
using UnityEngine;
using UnityEngine.UI;
using ZGame;
namespace HK.FUJIFILM
{
public class ImageDesignItem : MonoBehaviour
{
[SerializeField] private Image maskImage;
[SerializeField] private Transform designParent;
[SerializeField] private Button btnAddImage;
public Transform DesignParent => designParent;
2025-08-23 10:08:36 +08:00
private RectTransform rectTransform;
public RectTransform RectTransform
{
get
{
if (rectTransform == null)
rectTransform = transform.GetComponent<RectTransform>();
return rectTransform;
}
}
public float SizeDeltaMax =>
RectTransform.sizeDelta.x > RectTransform.sizeDelta.y
? RectTransform.sizeDelta.x
: RectTransform.sizeDelta.y;
2025-08-20 11:14:21 +08:00
public string ID;
public ImageDesignItemParent Parent;
2025-08-20 11:14:21 +08:00
public Action OnClickAddImage;
public Transform targetTran = null;
private void Awake()
{
maskImage = GetComponent<Image>();
designParent = transform.GetChild(0).transform;
btnAddImage = transform.GetChild(1).GetComponent<Button>();
btnAddImage.onClick.AddListener(ClickAddImage);
EventManager.Instance.Subscribe(ImageDesignItemButtonRestoreEventArgs.EventId,
ImageDesignItemButtonRestoreEvent);
2025-08-20 11:14:21 +08:00
}
private void OnDestroy()
{
EventManager.Instance.Unsubscribe(ImageDesignItemButtonRestoreEventArgs.EventId,
ImageDesignItemButtonRestoreEvent);
}
private void ImageDesignItemButtonRestoreEvent(object sender, GameEventArgs e)
{
var args = e as ImageDesignItemButtonRestoreEventArgs;
if (args.ID == ID)
return;
btnAddImage.transform.localScale = Vector3.one;
2025-08-20 11:14:21 +08:00
}
public void SetData(string id, ImageDesignItemParent parent = null)
2025-08-20 11:14:21 +08:00
{
ID = id;
Parent = parent;
2025-08-20 11:14:21 +08:00
}
public void IsHideBtnAdd(bool value)
{
btnAddImage.gameObject.SetActive(!value);
}
public void DeleteAllPhoto()
{
for (var i = 0; i < designParent.childCount; i++)
{
GameObject.Destroy(designParent.GetChild(i).gameObject);
}
}
2025-08-20 11:14:21 +08:00
private void ClickAddImage()
{
btnAddImage.transform.localScale = Vector3.one * 1.1f;
2025-08-20 11:14:21 +08:00
OnClickAddImage?.Invoke();
EventManager.Instance.FireNow(this, new ProductDesignItemEventArgs(designParent, ID));
EventManager.Instance.FireNow(this, new ImageDesignItemButtonRestoreEventArgs(ID));
2025-08-20 11:14:21 +08:00
}
}
}