Files
Studio/Assets/NewStudioJYM/Scripts/Panel_GenerateDynamicObject.cs

76 lines
2.4 KiB
C#

using UnityEngine;
using XRLib.UI;
using UnityEngine.UI;
using TMPro;
using System.Collections.Generic;
using Newtonsoft.Json;
using System;
using XRLib;
namespace Studio
{
public class Panel_GenerateDynamicObject : PanelBase
{
private Button Button_AddDynamicObject;
private RectTransform ModelContent;
private UI_DynamicObjectItem prf_dynamicObjectItem;
private List<UI_DynamicObjectItem> dynamicObjectItems = new List<UI_DynamicObjectItem>();
private DynamicObjectDatas dynamicObjectDatas;
private ModelList modelList;
public Action<UI_DynamicObjectItem> onUISetting;
public SaveModelDatas saveModelDatas;
public void OpenModal()
{
gameObject.SetActive(true);
}
public void CloseModal()
{
gameObject.SetActive(false);
}
private void TestConnectedData()
{
var dynamicObjectDataJson = Resources.Load<TextAsset>("DynamicObjectData").text;
dynamicObjectDatas = JsonConvert.DeserializeObject<DynamicObjectDatas>(dynamicObjectDataJson);
var modelListJson = Resources.Load<TextAsset>("ModelList").text;
modelList = JsonConvert.DeserializeObject<ModelList>(modelListJson);
}
public override void AfterAwake()
{
TestConnectedData();
prf_dynamicObjectItem = Resources.Load<UI_DynamicObjectItem>("Prefabs/UI/PRF_DynamicObjectItem");
Button_AddDynamicObject.onClick.AddListener(OnClickAddDynamicObjectButton);
dynamicObjectItems.Clear();
}
private void OnClickAddDynamicObjectButton()
{
var item = Instantiate(prf_dynamicObjectItem, ModelContent);
item.onUISetting += OnUISetting;
item.SetData(dynamicObjectDatas, modelList);
dynamicObjectItems.Add(item);
}
private void OnUISetting(UI_DynamicObjectItem rectTransform)
{
onUISetting?.Invoke(rectTransform);
}
public void Save()
{
saveModelDatas = GetDynamicObjectUIData();
}
public SaveModelDatas GetDynamicObjectUIData()
{
var saveModelDatas = new SaveModelDatas();
foreach(var modelData in dynamicObjectItems)
{
saveModelDatas.modelDatas.Add(modelData.GetModelData());
}
return saveModelDatas;
}
}
}