Framwork/Assets/Scripts/Runtime/Model/DesignCoverModelItem.cs

65 lines
2.7 KiB
C#

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<GameObject> designItems = new List<GameObject>();
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<UpdateInputField>().SetData(args.target);
inpContent.GetComponent<UpdateTransform>().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<UpdateTransform>().SetData(args.go.transform);
designItems.Add(instantiate);
}
}
}