using System; using System.Collections.Generic; using HK; using TMPro; using UnityEngine; using ZGame; namespace Runtime { public class DesignCoverModelItem : MonoBehaviour { [SerializeField] Transform designParent; [SerializeField] private TMP_InputField inpContent; List designItems = new List(); private void Awake() { EventManager.Instance.Subscribe(Product3SetTextTargetEventArgs.EventId, Product3SetTextTargetEvent); EventManager.Instance.Subscribe(Product3SetTextPositionEventArgs.EventId, Product3SetTextPositionEvent); EventManager.Instance.Subscribe(Product2AddDesignCoverEventArgs.EventId, Product2AddDesignCoverEvent); EventManager.Instance.Subscribe(Product2DesignCoverClearEventArgs.EventId, Product2DesignCoverClearEvent); } private void OnDestroy() { EventManager.Instance.Unsubscribe(Product3SetTextTargetEventArgs.EventId, Product3SetTextTargetEvent); EventManager.Instance.Unsubscribe(Product3SetTextPositionEventArgs.EventId, Product3SetTextPositionEvent); EventManager.Instance.Unsubscribe(Product2AddDesignCoverEventArgs.EventId, Product2AddDesignCoverEvent); EventManager.Instance.Unsubscribe(Product2DesignCoverClearEventArgs.EventId, Product2DesignCoverClearEvent); } private void Product3SetTextTargetEvent(object sender, GameEventArgs e) { var args = e as Product3SetTextTargetEventArgs; inpContent.GetComponent().SetData(args.target); inpContent.GetComponent().SetData(args.target.transform); } private void Product3SetTextPositionEvent(object sender, GameEventArgs e) { var args = e as Product3SetTextPositionEventArgs; inpContent.transform.localPosition = args.pos; inpContent.transform.localEulerAngles = args.angle; inpContent.textComponent.alignment = args.alignmentOptions; } private void Product2DesignCoverClearEvent(object sender, GameEventArgs e) { foreach (var o in designItems) { GameObject.Destroy(o.gameObject); } designItems.Clear(); } private void Product2AddDesignCoverEvent(object sender, GameEventArgs e) { var args = e as Product2AddDesignCoverEventArgs; var instantiate = GameObject.Instantiate(args.go, designParent); instantiate.AddComponent().SetData(args.go.transform); designItems.Add(instantiate); } } }