using System.Collections; using System.Collections.Generic; using UnityEngine; public class EquipSuitEffect : MonoBehaviour { [SerializeField] UIEffect m_SuitEffect; int itemId = 0; private void OnEnable() { Display(itemId); } public void Display(int itemId, bool dirty = false) { this.itemId = itemId; // var isSuitEquip = ItemLogicUtility.Instance.IsSuitEquip(itemId); // if (isSuitEquip) // { // m_SuitEffect.Play(); // } // else // { // m_SuitEffect.StopImediatly(); // } // if (dirty) // { // SnxxzGame.Instance.StartCoroutine(Co_SetOrder(this, transform as RectTransform)); // } } public static EquipSuitEffect Create(RectTransform transform) { var go = UIUtility.CreateWidget("EquipSuitEffect", "EquipSuitEffect"); var behaviour = go.GetComponent(); // SnxxzGame.Instance.StartCoroutine(Co_SetOrder(behaviour, transform)); var scale = 1f; var itemBasic = transform.GetComponentInParent(); if (itemBasic != null) { scale = GetEffectScale(itemBasic.format); } // else // { // var itemBehaviour = transform.GetComponentInParent(); // if (itemBehaviour != null) // { // if (itemBehaviour.backGround != null) // { // var size = itemBehaviour.backGround.rectTransform.rect.width; // scale = size / 84; // } // } // } var rect = go.transform as RectTransform; go.transform.SetParentEx(transform, Vector3.zero, Quaternion.identity, Vector3.one); rect.MatchWhith(transform); go.transform.localScale = Vector3.one * scale; go.transform.SetAsLastSibling(); return behaviour; } static IEnumerator Co_SetOrder(EquipSuitEffect behaviour, RectTransform transform) { yield return null; if (transform == null || behaviour == null) { yield break; } Canvas canva = transform.GetComponentInParent(); if (canva != null) { behaviour.m_SuitEffect.ResetOrder(canva.sortingOrder + 1); } if (behaviour.m_SuitEffect.maskArea == null) { behaviour.m_SuitEffect.SetMask(); } } static float GetEffectScale(ItemCellformat format) { switch (format) { case ItemCellformat.Format_100x100: return 1.1f; case ItemCellformat.Format_80x80: return 0.95f; case ItemCellformat.Format_70x70: return 0.8f; case ItemCellformat.Format_64x64: return 0.75f; default: return 1f; } } }