using System.Collections.Generic; using HK; using HK.FUJIFILM; using UnityEngine; using UnityEngine.UI; using ZGame; public class RoundCoasterModel_Fixed : Model_Fixed { public RectTransform designParent; public ProductScriptableObject productScriptableObject; // grid setting public RectOffset padding; public Vector2 cellSize; public Vector2 spacing; public GridLayoutGroup.Constraint constraint; public int constraintCount; 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; } var gridLayoutGroup = instantiate.GetComponent(); if (gridLayoutGroup != null) { gridLayoutGroup.constraint = constraint; gridLayoutGroup.constraintCount = constraintCount; gridLayoutGroup.spacing = spacing; gridLayoutGroup.padding = padding; gridLayoutGroup.cellSize = cellSize; 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); } } }