101 lines
3.3 KiB
C#
101 lines
3.3 KiB
C#
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;
|
|
[SerializeField] private Image btnAddImage_Child;
|
|
public Transform DesignParent => designParent;
|
|
|
|
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;
|
|
public float SizeDeltaMin =>
|
|
RectTransform.sizeDelta.x < RectTransform.sizeDelta.y
|
|
? RectTransform.sizeDelta.x
|
|
: RectTransform.sizeDelta.y;
|
|
|
|
public string ID;
|
|
public ImageDesignItemParent Parent;
|
|
|
|
public Action OnClickAddImage;
|
|
public Transform targetTran = null;
|
|
|
|
public Color selectedColor = Color.white;
|
|
public Color normalColor = Color.white;
|
|
|
|
private void Awake()
|
|
{
|
|
maskImage = GetComponent<Image>();
|
|
designParent = transform.GetChild(0).transform;
|
|
btnAddImage = transform.GetChild(1).GetComponent<Button>();
|
|
btnAddImage.onClick.AddListener(ClickAddImage);
|
|
btnAddImage_Child = btnAddImage.GetComponentInChildren<Image>();
|
|
EventManager.Instance.Subscribe(ImageDesignItemButtonRestoreEventArgs.EventId,
|
|
ImageDesignItemButtonRestoreEvent);
|
|
btnAddImage_Child.color = normalColor;
|
|
}
|
|
|
|
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;
|
|
btnAddImage_Child.color = normalColor;
|
|
}
|
|
|
|
public void SetData(string id, ImageDesignItemParent parent = null)
|
|
{
|
|
ID = id;
|
|
Parent = parent;
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
private void ClickAddImage()
|
|
{
|
|
btnAddImage.transform.localScale = Vector3.one * 1.1f;
|
|
btnAddImage_Child.color = selectedColor;
|
|
OnClickAddImage?.Invoke();
|
|
EventManager.Instance.FireNow(this, new ProductDesignItemEventArgs(designParent, ID));
|
|
EventManager.Instance.FireNow(this, new ImageDesignItemButtonRestoreEventArgs(ID));
|
|
}
|
|
}
|
|
} |