using System.Collections.Generic; using HK; using HK.FUJIFILM; using UnityEngine; using UnityEngine.UI; using ZGame; public class PhotoFilmRollKeychainModel_Fixed : Model_Fixed { public RectTransform designParent; public ProductScriptableObject productScriptableObject; public Vector2 pos = new Vector2(-382, -317); public Vector2 size = new Vector2(1462.38f, 1035.8f); public Vector3 scale = new Vector3(0.2f, 0.2f, 0.2f); 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; } OnlyPhotoFilmRollKeychain(instantiate); var list = instantiate.transform.FindChildDeeps(); foreach (var imageDesignItem in list) { imageDesignItem.IsHideBtnAdd(true); designItems.Add(imageDesignItem.ID, imageDesignItem); } } void OnlyPhotoFilmRollKeychain(GameObject instantiate) { Vector2 pos = new Vector2(-382, -194); Vector2 size = new Vector2(1462.38f, 1035.8f); Vector3 scale = new Vector3(0.2f, 0.2f, 0.2f); var rectTransform = instantiate.transform.GetComponent(); rectTransform.anchoredPosition = pos; rectTransform.sizeDelta = size; rectTransform.localScale = scale; var child = rectTransform.GetChild(0); child.GetComponent().enabled = false; child.GetComponent().enabled = false; rectTransform.GetChild(1).gameObject.SetActive(false); } }