FM/Assets/A3D/3d model/PhotoFilmRollKeychainModel_...

96 lines
3.5 KiB
C#

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<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);
}
productScriptableObject = args.productScriptableObject;
designParent.GetComponent<Image>().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<ImageDesignItem>();
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>();
rectTransform.anchoredPosition = pos;
rectTransform.sizeDelta = size;
rectTransform.localScale = scale;
var child = rectTransform.GetChild(0);
child.GetComponent<Image>().enabled = false;
child.GetComponent<Mask>().enabled = false;
rectTransform.GetChild(1).gameObject.SetActive(false);
}
}