FM/Assets/A3D/3d model/MugActualModel_Fixed.cs

87 lines
3.3 KiB
C#
Raw Normal View History

2025-08-20 11:14:21 +08:00
using System;
using System.Collections.Generic;
using HK;
using HK.FUJIFILM;
using UnityEngine;
using UnityEngine.UI;
using ZGame;
public class Model_Fixed : MonoBehaviour
{
}
public class MugActualModel_Fixed : Model_Fixed
{
public RectTransform designParent;
2025-08-22 00:33:25 +08:00
public ProductScriptableObject productScriptableObject;
2025-08-20 11:14:21 +08:00
private void OnEnable()
{
EventManager.Instance.Subscribe(MugActualModel_Fixed_GenPhotoEventArgs.EventId,
MugActualModel_Fixed_GenPhotoEvent);
EventManager.Instance.Subscribe(ProduceDesign_CopyDesignItemAssetEventArgs.EventId,
ProduceDesign_CopyDesignItemAssetEvent);
}
private void OnDisable()
{
EventManager.Instance.Unsubscribe(MugActualModel_Fixed_GenPhotoEventArgs.EventId,
MugActualModel_Fixed_GenPhotoEvent);
EventManager.Instance.Unsubscribe(ProduceDesign_CopyDesignItemAssetEventArgs.EventId,
ProduceDesign_CopyDesignItemAssetEvent);
}
private void MugActualModel_Fixed_GenPhotoEvent(object sender, GameEventArgs e)
{
var args = e as MugActualModel_Fixed_GenPhotoEventArgs;
if (!designItems.TryGetValue(args.ID, out ImageDesignItem designItem))
{
return;
}
var loadGameObject = GameObject.Instantiate(args.go, designItem.DesignParent);
loadGameObject.transform.localPosition = args.go.transform.localPosition;
var image = loadGameObject.GetComponent<Image>();
loadGameObject.AddComponent<HK.UpdateTransform>().SetData(args.go.transform);
loadGameObject.SetActive(true);
}
Dictionary<string, ImageDesignItem> designItems = new Dictionary<string, ImageDesignItem>();
private void ProduceDesign_CopyDesignItemAssetEvent(object sender, GameEventArgs e)
{
var args = e as ProduceDesign_CopyDesignItemAssetEventArgs;
designItems.Clear();
for (var i = 0; i < designParent.transform.childCount; i++)
{
GameObject.Destroy(designParent.transform.GetChild(i).gameObject);
}
2025-08-22 00:33:25 +08:00
productScriptableObject = args.productScriptableObject;
2025-08-20 11:14:21 +08:00
designParent.GetComponent<Image>().sprite = args.sprite;
var instantiate = GameObject.Instantiate(args.go, designParent);
2025-08-22 00:33:25 +08:00
if (instantiate.TryGetComponent(typeof(Image), out var image))
{
var component = ((Image)image);
component.sprite = args.sprite;
component.enabled = productScriptableObject.isShowTemplate;
}
2025-08-20 11:14:21 +08:00
2025-08-22 22:37:04 +08:00
var componentInChildren = args.go.GetComponentInChildren<UpdateInput>();
var updateInput = instantiate.GetComponentInChildren<UpdateInput>();
2025-08-23 10:08:36 +08:00
if (componentInChildren != null && updateInput != null)
updateInput.SetData(componentInChildren.inpChinName, componentInChildren.inpEngName,
componentInChildren.inpID,
componentInChildren.inpBirth, componentInChildren.inpIssue, componentInChildren.inpBianHao);
2025-08-22 22:37:04 +08:00
2025-08-20 11:14:21 +08:00
instantiate.transform.GetComponent<RectTransform>().anchoredPosition = Vector2.zero;
var list = instantiate.transform.FindChildDeeps<ImageDesignItem>();
foreach (var imageDesignItem in list)
{
imageDesignItem.IsHideBtnAdd(true);
designItems.Add(imageDesignItem.ID, imageDesignItem);
}
}
}