76 lines
2.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|