diff --git a/Assets/Scripts/Studio/AssetTool/CustomAssetConnector.cs b/Assets/Scripts/Studio/AssetTool/CustomAssetConnector.cs index ba49c1f2..2c4ff32c 100644 --- a/Assets/Scripts/Studio/AssetTool/CustomAssetConnector.cs +++ b/Assets/Scripts/Studio/AssetTool/CustomAssetConnector.cs @@ -156,9 +156,11 @@ namespace Studio.AssetTool selectedAssetData.AddTransformToRender(selectedItem.transform); CoroutineRunner.instance.StartCoroutine(ChangeSelectedAssetTransform()); - selectRenderObject.transform.position = new Vector3(asset.position.x, asset.position.y, asset.position.z); - selectRenderObject.transform.eulerAngles = new Vector3(asset.rotation.x, asset.rotation.y, asset.rotation.z); - selectRenderObject.transform.localScale = new Vector3(asset.scale.x, asset.scale.y, asset.scale.z); + selectRenderObject.LoadCreate(asset.code, asset.topic, asset.component, asset.isAutoCreate); + var pos = new Vector3(asset.position.x, asset.position.y, asset.position.z); + var angles = selectRenderObject.transform.eulerAngles = new Vector3(asset.rotation.x, asset.rotation.y, asset.rotation.z); + var scale = new Vector3(asset.scale.x, asset.scale.y, asset.scale.z); + selectRenderObject.SetTransform(pos, angles, scale); } public void OnAssetSelected(AssetLibraryItem item) diff --git a/Assets/Scripts/Studio/AssetTool/CustomAssetRenderObject.cs b/Assets/Scripts/Studio/AssetTool/CustomAssetRenderObject.cs index 547e4f80..4bf0217b 100644 --- a/Assets/Scripts/Studio/AssetTool/CustomAssetRenderObject.cs +++ b/Assets/Scripts/Studio/AssetTool/CustomAssetRenderObject.cs @@ -6,6 +6,7 @@ using UnityEngine; using UnityEngine.EventSystems; using Studio.DataStructures; using Studio.UI; +using Studio.Conifg; namespace Studio.AssetTool { @@ -35,9 +36,9 @@ namespace Studio.AssetTool public event Action OnSelected; public string componetKey; - public string addTopic; + public string topic; public bool isAutoId; - public string ID; + public string code; private void Awake() { objectRenderer = GetComponentInChildren(); @@ -262,5 +263,56 @@ namespace Studio.AssetTool return hitInfo; } + + public void ChangeConnectData(string id,string compoenet,string topic,bool isAuto) + { + this.code = id; + this.componetKey = compoenet; + this.topic = topic; + ChangeIsAuto(isAuto); + } + + private void ChangeIsAuto(bool isAuto) + { + if (this.isAutoId == isAuto) + return; + + this.isAutoId = isAuto; + if(functionObject !=null ) + { + functionObject.ChangeAutoID(isAuto); + } + } + + private AbstractFunctionObject functionObject; + public void LoadCreate(string code,string topic, string component, bool isAuto) + { + this.code = code; + this.topic = topic; + this.componetKey = component; + this.isAutoId = isAuto; + + if (string.IsNullOrEmpty(componetKey)) + return; + var compo = ConfigConnected.ComponetScritable.compoenets.FirstOrDefault(x => x.key.Equals(componetKey)); + var type = compo.comp.GetType(); + AddComponent(type); + } + + public void AddComponent(Type type) + { + if (!transform.TryGetComponent(type, out var com)) + { + var comp = transform.gameObject.AddComponent(type); + functionObject = comp as AbstractFunctionObject; + } + } + + public void SetTransform(Vector3 position,Vector3 angles, Vector3 scale) + { + transform.position = new Vector3(position.x, position.y, position.z); + transform.eulerAngles = new Vector3(angles.x, angles.y, angles.z); + transform.localScale = new Vector3(scale.x, scale.y, scale.z); + } } } \ No newline at end of file diff --git a/Assets/Scripts/Studio/Common/ProejctData.cs b/Assets/Scripts/Studio/Common/ProejctData.cs index 3c70cbda..a331a935 100644 --- a/Assets/Scripts/Studio/Common/ProejctData.cs +++ b/Assets/Scripts/Studio/Common/ProejctData.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using UnityEngine; namespace Studio.Util @@ -92,15 +92,36 @@ namespace Studio.Util { public int id; public string name; + public string code; + public string component; + public string topic; + public bool isAutoCreate; public SaveVector3 position; public SaveVector3 rotation; public SaveVector3 scale; public List children; - public AssetData(int id, string name, SaveVector3 position, SaveVector3 rotation, SaveVector3 scale, List children) + /// + /// + /// + /// instanceID + /// Object Name + /// FunctionObject ID( + /// AddComponent Key + /// ConnectTopic Key + /// Assigned ID + /// Object WorldPosition + /// Object WorldRotation + /// Object Scale + /// + public AssetData(int id, string name,string code,string component,string topic, bool isAutoId, SaveVector3 position, SaveVector3 rotation, SaveVector3 scale, List children) { this.id = id; this.name = name; + this.code = code; + this.component = component; + this.topic = topic; + this.isAutoCreate = isAutoId; this.position = position; this.rotation = rotation; this.scale = scale; diff --git a/Assets/Scripts/Studio/Connect/ConfigConnected.cs b/Assets/Scripts/Studio/Connect/ConfigConnected.cs index e985c019..14e721f8 100644 --- a/Assets/Scripts/Studio/Connect/ConfigConnected.cs +++ b/Assets/Scripts/Studio/Connect/ConfigConnected.cs @@ -26,13 +26,27 @@ namespace Studio.Conifg } } - public static Dictionary AssetSettings + //public static Dictionary AssetSettings + //{ + // get + // { + // var canvas_Popup = EventConnector.instance.GetCanvas(); + // var result = canvas_Popup.panel_3dfactorysetting.GetAssetDatas(); + // return result; + // } + //} + + private static AddComponetDataScriptable componetScriptable; + public static AddComponetDataScriptable ComponetScritable { get { - var canvas_Popup = CanvasManager.instance.GetCanvas(); - var result = canvas_Popup.panel_3dfactorysetting.GetAssetDatas(); - return result; + if(componetScriptable== null) + { + componetScriptable = Resources.Load("Scriptable/AddComponetData"); + componetScriptable.SetItem(); + } + return componetScriptable; } } } diff --git a/Assets/Scripts/Studio/Connect/StudioService.cs b/Assets/Scripts/Studio/Connect/StudioService.cs index 2a088bb3..1f369f56 100644 --- a/Assets/Scripts/Studio/Connect/StudioService.cs +++ b/Assets/Scripts/Studio/Connect/StudioService.cs @@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq; using NUnit.Framework; using Studio.Conifg; using Studio.Core; +using Studio.Manage; using Studio.Setting.Connect; using Studio.Util; using System; @@ -83,6 +84,12 @@ namespace Studio } public void ConnectMQTT(string domain, string port, List topics) { + if (repository == null) + { + Init(); + ManagerHub.instance.Get().onStop += DisConnectMQTT; + } + var conntedInfo = $"MQTT Domain : {domain} , MQTTPORT :{port}"; if (!topicTable.ContainsKey(conntedInfo)) topicTable.Add(conntedInfo, new()); @@ -92,7 +99,7 @@ namespace Studio repository.MQTTConnect(conntedInfo); } - public void DisConnectMQTT() + private void DisConnectMQTT() { repository.DisConnectMQTT(); } @@ -179,6 +186,9 @@ namespace Studio } else { + if (listenerIdMap[type][id] == listener) + return; + listenerIdMap[type][id] += listener; } } diff --git a/Assets/Scripts/Studio/Managers/ProjectManager.cs b/Assets/Scripts/Studio/Managers/ProjectManager.cs index 4e981fda..25c474a5 100644 --- a/Assets/Scripts/Studio/Managers/ProjectManager.cs +++ b/Assets/Scripts/Studio/Managers/ProjectManager.cs @@ -1,4 +1,4 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; @@ -105,7 +105,7 @@ namespace Studio.Manage .Where(asset => asset.hierarchyItem.linkedObject.activeSelf) .OrderBy(asset => asset.hierarchyItem.layerNum) .ThenBy(asset => asset.hierarchyItem.GetSiblingIndex()) - .Select(asset => CreateAssetData(asset.hierarchyItem)) + .Select(asset => CreateAssetData(asset)) .ToList(); curProjectData = CreateProjectData(assetDatas); string json = JsonConvert.SerializeObject(curProjectData, Formatting.Indented); @@ -116,15 +116,20 @@ namespace Studio.Manage writer.Close(); } - public AssetData CreateAssetData(HierarchyItem hierarchyItem) + public AssetData CreateAssetData(ConnectedAsset asset) { return new AssetData( - hierarchyItem.linkedObject.GetInstanceID(), - hierarchyItem.name, - new SaveVector3(hierarchyItem.linkedObject.transform.position), - new SaveVector3(hierarchyItem.linkedObject.transform.eulerAngles), - new SaveVector3(hierarchyItem.linkedObject.transform.localScale), - hierarchyItem.children.Select(x => x.linkedObject.GetInstanceID()).ToList() + asset.hierarchyItem.linkedObject.GetInstanceID(), + asset.hierarchyItem.name, + asset.renderObject.code, + asset.renderObject.componetKey, + asset.renderObject.topic, + asset.renderObject.isAutoId, + new SaveVector3(asset.hierarchyItem.linkedObject.transform.position), + new SaveVector3(asset.hierarchyItem.linkedObject.transform.eulerAngles), + new SaveVector3(asset.hierarchyItem.linkedObject.transform.localScale), + + asset.hierarchyItem.children.Select(x => x.linkedObject.GetInstanceID()).ToList() ); } diff --git a/Assets/Scripts/Studio/Managers/RunManager.cs b/Assets/Scripts/Studio/Managers/RunManager.cs index 2bf47940..5adc632d 100644 --- a/Assets/Scripts/Studio/Managers/RunManager.cs +++ b/Assets/Scripts/Studio/Managers/RunManager.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using Studio.Conifg; using Studio.Manage; using Studio.Util; @@ -24,9 +24,6 @@ namespace Studio.Manage public override void Init() { - StudioService.instance.Init(); - onRun += Dynamic.M.AGVManager.instance.OnPlayStart; - onStop += StudioService.instance.DisConnectMQTT; } public void ChangeState() diff --git a/Assets/Scripts/Studio/TwinObject/AbstractFunctionObject.cs b/Assets/Scripts/Studio/TwinObject/AbstractFunctionObject.cs index e99c4daa..12322c4a 100644 --- a/Assets/Scripts/Studio/TwinObject/AbstractFunctionObject.cs +++ b/Assets/Scripts/Studio/TwinObject/AbstractFunctionObject.cs @@ -18,6 +18,8 @@ namespace Studio public virtual ObjectType ObjectType { get; set; } public abstract void OnUpdateData(object sender, StudioServiceIdEventArgs e); + + public abstract void ChangeAutoID(bool isAuto); } } diff --git a/Assets/Scripts/Studio/TwinObject/DynamicObject/AGV.cs b/Assets/Scripts/Studio/TwinObject/DynamicObject/AGV.cs index 62b1d916..f4e7da3d 100644 --- a/Assets/Scripts/Studio/TwinObject/DynamicObject/AGV.cs +++ b/Assets/Scripts/Studio/TwinObject/DynamicObject/AGV.cs @@ -1,4 +1,6 @@ -using Studio.VirtualFactory.Info; +using Studio.AssetTool; +using Studio.Dynamic.Manager; +using Studio.VirtualFactory.Info; using System; using System.Collections.Generic; using System.Linq; @@ -27,7 +29,7 @@ namespace Studio.Dynamic.TwinObject public Dictionary CurrentEntity; private bool isPlay = false; - + private CustomAssetRenderObject renderObject; public override Dictionary Info { get @@ -54,6 +56,17 @@ namespace Studio.Dynamic.TwinObject } } + public override void AfterAwake() + { + renderObject = GetComponent(); + if (!string.IsNullOrEmpty(renderObject.code)) + { + Init(renderObject.componetKey, transform.position); + } + } + //최초 배치 후 하나 있고 AutoID 체크 되어 있으면.. + // + /// /// Run했을때 생성되면서 배치... /// @@ -150,5 +163,10 @@ namespace Studio.Dynamic.TwinObject { rotSpeed = aGVRotateSpeed; } + + public override void ChangeAutoID(bool isAuto) + { + AGVManager.instance.SetCopyObject(isAuto, renderObject); + } } } diff --git a/Assets/Scripts/Studio/TwinObject/DynamicObject/AGVManager.cs b/Assets/Scripts/Studio/TwinObject/DynamicObject/AGVManager.cs index 9a60709d..cc3618cf 100644 --- a/Assets/Scripts/Studio/TwinObject/DynamicObject/AGVManager.cs +++ b/Assets/Scripts/Studio/TwinObject/DynamicObject/AGVManager.cs @@ -1,38 +1,34 @@ -using System; +using Studio.AssetTool; +using Studio.Core; +using Studio.Dynamic.TwinObject; +using Studio.Manage; +using System; using System.Collections.Generic; using System.Linq; using UnityEngine; -using Studio.Dynamic.TwinObject; -using Studio.Core; -using Studio.Manage; -using Studio.Conifg; -using Studio.AssetTool; -namespace Studio.Dynamic.M +namespace Studio.Dynamic.Manager { public class AGVManager : UnitySingleton { - private CustomAssetRenderObject renderobject; + private CustomAssetRenderObject agvRenderObj; + private ConnectedAsset asset; private HashSet agvs = new(); public float AGVMoveSpeed; public float AGVRotateSpeed; - public Queue>> createAgvs = new(); - public void Awake() - { - //이벤트 걸어둔다.. - //+= OnPlayStart - } + public void OnPlayStart() { - //var type = GetComponent().addTopic; - // var assets = ConfigConnected.AssetSettings; - //prf_AGV = assets[type].loadedObject; - //var connector = ManagerHub.instance.Get(); - //ConnectedAsset searchAsset = connector.connectedAssets.FirstOrDefault(x => x.renderObject == renderobject); - //searchAsset.assetData.assetName - var type = "AGV"; - + agvRenderObj.gameObject.SetActive(false); + var type = agvRenderObj.topic; + var connector = ManagerHub.instance.Get(); + asset = connector.connectedAssets.FirstOrDefault(x => x.renderObject == agvRenderObj); + if (asset == null) + { + //todo::팝업메시지 나주엥 설정.... + return; + } StudioService.instance.AddTypeListener(type, OnDataUpdate); StudioService.instance.AddTypeIdListener(type); } @@ -44,7 +40,7 @@ namespace Studio.Dynamic.M private void OnDataUpdate(object sender, StudioServiceTypeEventArgs e) { var entities = e.Entitis; - foreach(var entity in entities) + foreach (var entity in entities) { var key = entity.Key; var value = entity.Value; @@ -53,19 +49,16 @@ namespace Studio.Dynamic.M Debug.Log($"중복된 ID {key}"); continue; } - var item = CreateAGV(e.Type, key,value); + var item = CreateAGV(e.Type, key, value); + SetRenderObject(item.GetComponent()); agvs.Add(item); } } - private AGV CreateAGV(string type, string id ,Dictionary entity) + private AGV CreateAGV(string type, string id, Dictionary entity) { - var agv = ManagerHub.instance.Get().CreateAsset("Palletrobot").AddComponent(); - //var agv = Instantiate(prf_AGV,transform); - - // var agv = Instantiate(prf_AGV,transform).AddComponent(); - // agv.gameObject.SetActive(true); - + var agv = ManagerHub.instance.Get().CreateAsset(asset.assetData.assetName).AddComponent(); + agv.gameObject.SetActive(true); agv.transform.position = Vector3.zero; agv.name = id; agv.SetMoveSpeed(AGVMoveSpeed); @@ -76,10 +69,15 @@ namespace Studio.Dynamic.M float.TryParse(yPos.Value, out var y); var pos = new Vector3(x * 0.001f, 0, y * 0.001f); - agv.Init(type,pos); + agv.Init(type, pos); return agv; } + private void SetRenderObject(CustomAssetRenderObject obj) + { + obj.LoadCreate(asset.renderObject.code, asset.renderObject.topic, asset.renderObject.componetKey, asset.renderObject.isAutoId); + } + /// /// API 연결했을때 /// @@ -89,12 +87,31 @@ namespace Studio.Dynamic.M var agvKey = baseDatas.Keys.FirstOrDefault(x => x.Contains("AGV", StringComparison.OrdinalIgnoreCase)); var agvDatas = baseDatas[agvKey].Entity; - foreach(var data in agvDatas) + foreach (var data in agvDatas) { var id = data.FirstOrDefault(x => x.Key.Equals("ID", StringComparison.OrdinalIgnoreCase)); CreateAGV("AGV", id.Value, data); } - + + } + + + public void SetCopyObject(bool isAuto, CustomAssetRenderObject renderObject) + { + if (isAuto) + { + agvRenderObj = renderObject; + //이벤트 걸어둔다.. + ManagerHub.instance.Get().onRun += OnPlayStart; + } + else + { + agvRenderObj = null; + ManagerHub.instance.Get().onRun -= OnPlayStart; + //이벤트해제 + //-= OnPlayStart + } + } diff --git a/Assets/Scripts/Studio/TwinObject/StaticObject/StackerCrane.cs b/Assets/Scripts/Studio/TwinObject/StaticObject/StackerCrane.cs index 55844266..2cb62958 100644 --- a/Assets/Scripts/Studio/TwinObject/StaticObject/StackerCrane.cs +++ b/Assets/Scripts/Studio/TwinObject/StaticObject/StackerCrane.cs @@ -42,6 +42,7 @@ namespace Studio.Staic.STKC public string BAY; public string LEVEL; + private float startPos; private float liftSpeed; private float bodySpeed; private float bodyProcess; @@ -69,7 +70,7 @@ namespace Studio.Staic.STKC } public void OnPlayStart() { - var type = GetComponent().addTopic; + var type = GetComponent().topic; curType = type; StudioService.instance.AddTypeIdListener(type, transform.name, OnUpdateData); } @@ -83,6 +84,42 @@ namespace Studio.Staic.STKC { } + + public override void OnUpdateData(object sender, StudioServiceIdEventArgs e) + { + CurrentEntity = e.Entity; + + BANK = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(BANK), StringComparison.OrdinalIgnoreCase)).Value; + BAY = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(BAY), StringComparison.OrdinalIgnoreCase)).Value; + LEVEL = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(LEVEL), StringComparison.OrdinalIgnoreCase)).Value; + + var x = int.Parse(BANK); + var y = int.Parse(LEVEL); + var z = int.Parse(BAY); + + if (x == 0 && y == 0 && z == 0) + startPos = transform.localPosition.z; + if (IsSameValue(x, y, z)) + return; + + bodyProcess = 0f; + liftProcess = 0f; + bodyStart = transform.localPosition; + bodyEnd = bodyStart; + bodyEnd.z = startPos; + bodyEnd.z += z; + + liftStartY = lift.position.y; + liftEndY = y; + + onMotionStart?.Invoke(); + } + public override void ChangeAutoID(bool isAuto) + { + return; + } + + private void StartAnim() { StopAllCoroutines(); @@ -124,35 +161,6 @@ namespace Studio.Staic.STKC liftPos.y = liftY; lift.position = liftPos; } - - public override void OnUpdateData(object sender, StudioServiceIdEventArgs e) - { - CurrentEntity = e.Entity; - - - BANK = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(BANK), StringComparison.OrdinalIgnoreCase)).Value; - BAY = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(BAY), StringComparison.OrdinalIgnoreCase)).Value; - LEVEL = CurrentEntity.FirstOrDefault(x => x.Key.Equals(nameof(LEVEL), StringComparison.OrdinalIgnoreCase)).Value; - - var x = int.Parse(BANK); - var y = int.Parse(LEVEL); - var z = int.Parse(BAY); - - if (IsSameValue(x, y, z)) - return; - - bodyProcess = 0f; - liftProcess = 0f; - bodyStart = transform.localPosition; - bodyEnd = bodyStart; - bodyEnd.z = z; - - liftStartY = lift.position.y; - liftEndY = y; - - onMotionStart?.Invoke(); - } - private bool IsSameValue(int bank, int bay, int level) { @@ -169,6 +177,7 @@ namespace Studio.Staic.STKC return false; } + private void OnDestroy() { if (curType == null) @@ -176,5 +185,7 @@ namespace Studio.Staic.STKC StudioService.instance.RemoveTypeIdListener(curType, transform.name); onMotionStart -= StartAnim; } + + } } diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs b/Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs index 164c4d0b..984b36ff 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_AGV.cs @@ -1,5 +1,5 @@ -using Studio.Dynamic.TwinObject; -using Studio.Dynamic.M; +using Studio.Dynamic.TwinObject; +using Studio.Dynamic.Manager; using System.Collections.Generic; using TMPro; using UnityEngine; diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_DynamicObjectInfo.cs b/Assets/Scripts/Studio/UI/Panel/Panel_DynamicObjectInfo.cs index 29564d0c..90909260 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_DynamicObjectInfo.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_DynamicObjectInfo.cs @@ -10,6 +10,7 @@ using UnityEngine.UI; using System; using Studio.AssetTool; using UnityEngine.Rendering.Universal; +using Studio.Conifg; namespace Studio.UI { @@ -66,6 +67,11 @@ namespace Studio.UI private CustomAssetRenderObject singleSelectObject; private AddComponetDataScriptable componetScriptable; + + private string componetKey; + private string topic; + private string code; + private bool isAuto; public override void AfterAwake() { InputField_PositionX.onValueChanged.AddListener(OnPosXChanged); @@ -265,8 +271,9 @@ namespace Studio.UI void OnChangedID(string Id) { - var searchAsset = GetConnectAsset(singleSelectObject); - searchAsset.renderObject.ID = Id; + this.code = Id; + singleSelectObject.name = Id; + singleSelectObject.ChangeConnectData(code, componetKey, topic, isAuto); } public void SetObjectInfo(string name, List selectedObjects) { @@ -288,20 +295,21 @@ namespace Studio.UI { singleSelectObject = renderObject; var searchAsset = GetConnectAsset(renderObject); - var compKey = searchAsset.renderObject.componetKey; - addComponetModal.ChangeItem(searchAsset.renderObject.componetKey); - InputField_ID.SetTextWithoutNotify(searchAsset.renderObject.ID); + componetKey = searchAsset.renderObject.componetKey; + this.code = searchAsset.renderObject.code; + addComponetModal.ChangeItem(componetKey); + InputField_ID.SetTextWithoutNotify(this.code); - if (!string.IsNullOrEmpty(compKey)) + if (!string.IsNullOrEmpty(componetKey)) { connectionModal.gameObject.SetActive(true); + this.topic = searchAsset.renderObject.topic; + this.isAuto = searchAsset.renderObject.isAutoId; + connectionModal.Open(); + connectionModal.SetAutoId(isAuto); - var topic = searchAsset.renderObject.addTopic; - var isAuto = searchAsset.renderObject.isAutoId; if (!string.IsNullOrEmpty(topic)) { - connectionModal.SetAutoId(isAuto); - connectionModal.Open(); connectionModal.ChangeItem(topic,isAuto); } } @@ -342,6 +350,7 @@ namespace Studio.UI InputField_ScaleX.SetTextWithoutNotify("-"); InputField_ScaleY.SetTextWithoutNotify("-"); InputField_ScaleZ.SetTextWithoutNotify("-"); + InputField_Name.SetTextWithoutNotify("-"); if (lastSelectedInputField.type != InputFieldType.none) { lastSelectedInputField = new SelectedInput(InputFieldType.none, 0.0f); @@ -354,16 +363,15 @@ namespace Studio.UI /// private void AddCompoent(string key) { - var component = componetScriptable.compoenets.FirstOrDefault(x => x.key.Equals(key)); + var component = ConfigConnected.ComponetScritable.compoenets.FirstOrDefault(x => x.key.Equals(key)); var type = component.comp.GetType(); if (!singleSelectObject.TryGetComponent(type, out var com)) { - singleSelectObject.gameObject.AddComponent(component.comp.GetType()); + singleSelectObject.AddComponent(type); var obj = component.comp as AbstractFunctionObject; var isAuto = obj.ObjectType.Equals(ObjectType.Dynamic) ? true : false; connectionModal.SetAutoId(isAuto); - } } @@ -384,11 +392,10 @@ namespace Studio.UI private void ChangeCompoentItem(string key) { - var searchObject = GetConnectAsset(singleSelectObject); - var prevKey = searchObject.renderObject.componetKey; + var prevKey = singleSelectObject.componetKey; if (!string.IsNullOrEmpty(prevKey) && !prevKey.Equals(key)) { - RemoveAddCompoent(searchObject.renderObject.componetKey); + RemoveAddCompoent(singleSelectObject.componetKey); } bool isConnect = string.IsNullOrEmpty(key) ? false : true; //이전의 키값을 가져와야 함. @@ -397,27 +404,28 @@ namespace Studio.UI connectionModal.gameObject.SetActive(isConnect); if (isConnect == false) { - searchObject.renderObject.addTopic = null; - searchObject.renderObject.isAutoId = false; - searchObject.renderObject.componetKey = key; + singleSelectObject.topic = null; + singleSelectObject.isAutoId = false; + singleSelectObject.componetKey = key; return; } AddCompoent(key); connectionModal.Open(); - searchObject.renderObject.componetKey = key; + componetKey = key; + singleSelectObject.ChangeConnectData(code, componetKey, topic, isAuto); } private void ChangeTopicItem(string key) { - var searchObject = GetConnectAsset(singleSelectObject); - searchObject.renderObject.addTopic = key; + topic = key; + singleSelectObject.ChangeConnectData(code, componetKey, topic, isAuto); } private void ChangeToggleItem(bool isAuto) { - var searchObject = GetConnectAsset(singleSelectObject); - searchObject.renderObject.isAutoId = isAuto; + this.isAuto = isAuto; + singleSelectObject.ChangeConnectData(code, componetKey, topic, isAuto); } private void OnClickConnectDataButton() diff --git a/Assets/Scripts/Studio/UI/Panel_3DDy/AddComponetModal.cs b/Assets/Scripts/Studio/UI/Panel_3DDy/AddComponetModal.cs index 1c2e983e..6e43ff22 100644 --- a/Assets/Scripts/Studio/UI/Panel_3DDy/AddComponetModal.cs +++ b/Assets/Scripts/Studio/UI/Panel_3DDy/AddComponetModal.cs @@ -1,4 +1,5 @@ -using System; +using Studio.Conifg; +using System; using System.Collections.Generic; using TMPro; using UnityEngine; @@ -44,8 +45,7 @@ namespace Studio private void SetItem() { - var item = Resources.Load("Scriptable/AddComponetData"); - item.SetItem(); + var item = ConfigConnected.ComponetScritable; componetentKeyTable.Clear(); componetentKeyTable.Add(string.Empty); foreach (var comp in item.compoenets) diff --git a/Assets/Scripts/Studio/UI/Panel_3DDy/ConnectionModal.cs b/Assets/Scripts/Studio/UI/Panel_3DDy/ConnectionModal.cs index 8221127e..2cd38037 100644 --- a/Assets/Scripts/Studio/UI/Panel_3DDy/ConnectionModal.cs +++ b/Assets/Scripts/Studio/UI/Panel_3DDy/ConnectionModal.cs @@ -61,6 +61,7 @@ namespace Studio public void Open() { SetItem(); + autoIDCheck.gameObject.SetActive(false); ActiveToggle(); }