백업
This commit is contained in:
@@ -9,6 +9,7 @@ using System.Linq;
|
||||
using System.Collections;
|
||||
using Studio.AssetLibraryTree;
|
||||
using Studio;
|
||||
using System.Drawing.Printing;
|
||||
|
||||
namespace Studio.AssetTool
|
||||
{
|
||||
@@ -126,6 +127,7 @@ namespace Studio.AssetTool
|
||||
selectedAssetData = null;
|
||||
return;
|
||||
}
|
||||
|
||||
selectedAssetData = item.linkedObject.GetComponent<CustomAssetData>();
|
||||
if (selectedAssetData == null || selectedAssetData.isLoadComplete == false)
|
||||
{
|
||||
@@ -144,6 +146,44 @@ namespace Studio.AssetTool
|
||||
selectedAssetData.AddTransformToRender(selectedItem.transform);
|
||||
CoroutineRunner.instance.StartCoroutine(ChangeSelectedAssetTransform());
|
||||
}
|
||||
public GameObject OnCreateAsset(string name)
|
||||
{
|
||||
AssetLibraryItem item = assetScrollView.FindItem(name, AssetLibraryItemType.file);
|
||||
|
||||
if (item == null || item.linkedObject == null)
|
||||
{
|
||||
selectedAssetData = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
selectedAssetData = item.linkedObject.GetComponent<CustomAssetData>();
|
||||
if (selectedAssetData == null || selectedAssetData.isLoadComplete == false)
|
||||
{
|
||||
selectedAssetData = null;
|
||||
return null;
|
||||
}
|
||||
selectedItem = UnityEngine.GameObject.Instantiate(renderObjectPrefab);
|
||||
selectRenderObject = selectedItem.GetComponent<CustomAssetRenderObject>();
|
||||
//selectRenderObject.OnOverlabBegin += interferedObjectManager.AddInterferedPair;
|
||||
//selectRenderObject.OnOverlabEnd += interferedObjectManager.RemoveInterferedPair;
|
||||
selectRenderObject.OnSelected += panel_ObjectDistance.SelectObjectFromCreate;
|
||||
selectRenderObject.instantiateObject = selectedAssetData.InstantiateLoadedObject;
|
||||
selectRenderObject.getBounds = selectedAssetData.GetCombinedBoundary;
|
||||
selectRenderObject.CreateRenderObject();
|
||||
selectedAssetData.AddTransformToRender(selectedItem.transform);
|
||||
|
||||
ConnectedAsset connectedAsset = new ConnectedAsset
|
||||
{
|
||||
assetData = selectedAssetData,
|
||||
hierarchyItem = componentScrollView.AddItem(selectedAssetData.assetName, selectedItem, HierarchyItemType.obj),
|
||||
renderObject = selectRenderObject
|
||||
};
|
||||
connectedAsset.renderObject.onTransformChanged = connectedAsset.assetData.OnTransformDataChanged;
|
||||
var command = new CreateConnectedAssetCommand(connectedAsset);
|
||||
CommandInvoker.instance.Invoke(command);
|
||||
selectedAssetData = null;
|
||||
return connectedAsset.hierarchyItem.linkedObject;
|
||||
}
|
||||
public void OnAssetDropped(AssetLibraryItem item)
|
||||
{
|
||||
if (selectedAssetData == null)
|
||||
@@ -208,6 +248,7 @@ namespace Studio.AssetTool
|
||||
{
|
||||
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
|
||||
canvas_Popup.panel_objectinfo.gameObject.SetActive(false);
|
||||
canvas_Popup.panel_agv.gameObject.SetActive(false);
|
||||
componentScrollView.DeselectAll();
|
||||
}
|
||||
|
||||
@@ -240,6 +281,8 @@ namespace Studio.AssetTool
|
||||
{
|
||||
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
|
||||
canvas_Popup.panel_objectinfo.SetObjectInfo(name, selectedObjects);
|
||||
canvas_Popup.panel_objectinfo.SetActive(true);
|
||||
canvas_Popup.panel_agv.SetTarget(selectedObjects[0]);
|
||||
canvas_Popup.panel_objectdistance.SelectObjectFromClick(name, selectedObjects);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Studio.Dynamic.TwinObject
|
||||
Quaternion startRot;
|
||||
Quaternion endRot;
|
||||
|
||||
private Dictionary<string, string> CurrentEntity;
|
||||
public Dictionary<string, string> CurrentEntity;
|
||||
|
||||
private bool isPlay = false;
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace Studio.Dynamic.TwinObject
|
||||
s += $"{t.Key}: {t.Value},";
|
||||
}
|
||||
s += "}";
|
||||
Debug.Log(s);
|
||||
//Debug.Log(s);
|
||||
SetPos();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ using System.Linq;
|
||||
using UnityEngine;
|
||||
using Studio.Dynamic.TwinObject;
|
||||
using Studio.Core;
|
||||
using Studio.Manage;
|
||||
using Studio.AssetTool;
|
||||
|
||||
namespace Studio.Dynamic.M
|
||||
{
|
||||
@@ -14,7 +16,14 @@ namespace Studio.Dynamic.M
|
||||
public float AGVMoveSpeed;
|
||||
public float AGVRotateSpeed;
|
||||
public Queue<Dictionary<string, Dictionary<string, string>>> createAgvs = new();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MQTT
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
public void Init()
|
||||
{
|
||||
prf_AGV = Resources.Load<AGV>("TestAGV");
|
||||
@@ -45,7 +54,8 @@ namespace Studio.Dynamic.M
|
||||
|
||||
private AGV CreateAGV(string type, string id ,Dictionary<string,string> entity)
|
||||
{
|
||||
var agv = Instantiate<AGV>(prf_AGV,transform);
|
||||
var agv = ManagerHub.instance.Get<CustomAssetConnector>().OnCreateAsset("AGV").GetComponent<AGV>();
|
||||
//var agv = Instantiate<AGV>(prf_AGV,transform);
|
||||
agv.transform.position = Vector3.zero;
|
||||
agv.name = id;
|
||||
agv.SetMoveSpeed(AGVMoveSpeed);
|
||||
|
||||
@@ -52,6 +52,7 @@ namespace Studio
|
||||
public Panel_LoggingModal panel_loggingmodal;
|
||||
public Panel_ExitChecker panel_exitchecker;
|
||||
public Panel_DataRepository panel_datarepository;
|
||||
public Panel_AGV panel_agv;
|
||||
|
||||
public Panel_DataConnectModal panel_dataconnectmodal;
|
||||
public Panel_AlarmConnectModal panel_alarmconnectmodal;
|
||||
|
||||
87
Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs
Normal file
87
Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using Studio.Dynamic.TwinObject;
|
||||
using Studio.Dynamic.M;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
using System.Linq;
|
||||
|
||||
namespace Studio.UI
|
||||
{
|
||||
public class Panel_AGV : PanelBase
|
||||
{
|
||||
public GameObject itemPrefab;
|
||||
public RectTransform Content;
|
||||
|
||||
private Dictionary<string, TMP_Text> keyToValueTextMap = new();
|
||||
private bool isInitialized = false;
|
||||
|
||||
private bool itemInit;
|
||||
public Dictionary<string, string> CurrentEntity;
|
||||
|
||||
private string targetId = string.Empty;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
itemPrefab = Resources.Load<GameObject>("Prefabs/UI/PRF_EntityItem");
|
||||
}
|
||||
|
||||
internal void OnUpdateData(object sender, StudioServiceIdEventArgs e)
|
||||
{
|
||||
if (!itemInit)
|
||||
{
|
||||
InstantiateUI(e.Entity);
|
||||
itemInit = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateUI(e.Entity);
|
||||
}
|
||||
}
|
||||
|
||||
internal void SetTarget(GameObject selectedObject)
|
||||
{
|
||||
if (selectedObject.TryGetComponent<AGV>(out AGV agv))
|
||||
{
|
||||
StudioService.instance.RemoveTypeIdListener("AGV", targetId);
|
||||
targetId = agv.name;
|
||||
StudioService.instance.AddTypeIdListener("AGV", targetId, OnUpdateData);
|
||||
SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
void InstantiateUI(Dictionary<string, string> entity)
|
||||
{
|
||||
foreach (var kvp in entity)
|
||||
{
|
||||
GameObject item = Instantiate(itemPrefab, Content);
|
||||
|
||||
var texts = item.GetComponentsInChildren<TMP_Text>();
|
||||
if (texts.Length < 2) continue;
|
||||
|
||||
TMP_Text keyText = texts[0];
|
||||
TMP_Text valueText = texts[1];
|
||||
|
||||
keyText.text = kvp.Key;
|
||||
valueText.text = kvp.Value;
|
||||
|
||||
keyToValueTextMap[kvp.Key] = valueText;
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateUI(Dictionary<string, string> entity)
|
||||
{
|
||||
foreach (var kvp in entity)
|
||||
{
|
||||
if (keyToValueTextMap.TryGetValue(kvp.Key, out var valueText))
|
||||
{
|
||||
valueText.text = kvp.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs.meta
Normal file
2
Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50cc14a8fa6b2cb44ad7d2426e7e46eb
|
||||
Reference in New Issue
Block a user