using System.Collections.Generic; using HK; using HK.FUJIFILM; using UnityEngine; using UnityEngine.UI; using ZGame; public class MugActualModelRender_Fixed : Model_Fixed { public RectTransform designParent; public ProductScriptableObject productScriptableObject; 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(); loadGameObject.AddComponent().SetData(args.go.transform); loadGameObject.SetActive(true); } Dictionary designItems = new Dictionary(); 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); } productScriptableObject = args.productScriptableObject; designParent.GetComponent().sprite = args.sprite; var instantiate = GameObject.Instantiate(args.go, designParent); if (instantiate.TryGetComponent(typeof(Image), out var image)) { var component = ((Image)image); component.sprite = args.sprite; component.enabled = productScriptableObject.isShowTemplate; } // only (pet id card) var componentInChildren = args.go.GetComponentInChildren(); var updateInput = instantiate.GetComponentInChildren(); if (componentInChildren != null && updateInput != null) updateInput.SetData(componentInChildren.inpChinName, componentInChildren.inpEngName, componentInChildren.inpID, componentInChildren.inpBirth, componentInChildren.inpIssue, componentInChildren.inpBianHao); // only (one to many) var gridLayoutGroup = instantiate.GetComponent(); if (gridLayoutGroup != null) { gridLayoutGroup.constraint = args.productScriptableObject.constraint_OnceToMany; gridLayoutGroup.constraintCount = args.productScriptableObject.constraintCount_OnceToMany; gridLayoutGroup.spacing = args.productScriptableObject.layoutSpacingSize_OnceToMany; gridLayoutGroup.padding = args.productScriptableObject.layoutRectOffset_OnceToMany; gridLayoutGroup.cellSize = args.productScriptableObject.cellSize_OnceToMany; var rectTransform = instantiate.GetComponent(); rectTransform.sizeDelta = designParent.sizeDelta; var itemParentTrans = instantiate.transform; for (var i = 0; i < itemParentTrans.childCount; i++) { itemParentTrans.GetChild(i).GetChild(0).gameObject.SetActive(true); } } instantiate.transform.GetComponent().anchoredPosition = Vector2.zero; var list = instantiate.transform.FindChildDeeps(); foreach (var imageDesignItem in list) { imageDesignItem.IsHideBtnAdd(true); designItems.Add(imageDesignItem.ID, imageDesignItem); } } }