diff --git a/Assets/Scenes/0.30.0.unity b/Assets/Scenes/0.30.0.unity index 4631c3a2..a416e348 100644 --- a/Assets/Scenes/0.30.0.unity +++ b/Assets/Scenes/0.30.0.unity @@ -2458,6 +2458,7 @@ RectTransform: - {fileID: 1639318484} - {fileID: 2010909997} - {fileID: 18479049} + - {fileID: 648889522} m_Father: {fileID: 1981809316} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2511,6 +2512,7 @@ MonoBehaviour: panel_toolbar: {fileID: 0} panel_dataconnectmodal: {fileID: 0} panel_alarmconnectmodal: {fileID: 0} + panel_toastmessage: {fileID: 0} --- !u!114 &545811783 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2848,6 +2850,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 68fe65091b9346d4d803044314a62d23, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!224 &648889522 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + m_PrefabInstance: {fileID: 1632293947} + m_PrefabAsset: {fileID: 0} --- !u!1 &659421206 GameObject: m_ObjectHideFlags: 0 @@ -8632,6 +8639,107 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7ba136ec400eea8498140d9abaa63da5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &1632293947 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 545811781} + m_Modifications: + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1985167945211234460, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2164931036245486078, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_Name + value: Panel_ToastMessage + objectReference: {fileID: 0} + - target: {fileID: 2164931036245486078, guid: e9508decb91c2994f92851c5c4315f57, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e9508decb91c2994f92851c5c4315f57, type: 3} --- !u!1001 &1639318483 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Studio/AssetTool/RenderObjectHandler.cs b/Assets/Scripts/Studio/AssetTool/RenderObjectHandler.cs index 95e1910c..a57076f9 100644 --- a/Assets/Scripts/Studio/AssetTool/RenderObjectHandler.cs +++ b/Assets/Scripts/Studio/AssetTool/RenderObjectHandler.cs @@ -158,7 +158,6 @@ namespace Studio.AssetTool ManagerHub.instance.Get().OnDeselectAll(); } - public void AddSelection(CustomAssetRenderObject item) { if (selectedRenderObjects.Any(x => x == item)) @@ -192,6 +191,7 @@ namespace Studio.AssetTool public void RemoveSelection(CustomAssetRenderObject item) { + Debug.Log("RemoveSelection"); item.Deselect(); selectedRenderObjects.Remove(item); selectedGameObjects.Remove(item.gameObject); @@ -352,12 +352,24 @@ namespace Studio.AssetTool shortcutTable.Add(KeyCode.LeftControl, new Dictionary()); //shortcutTable[KeyCode.LeftShift].Add(KeyCode.C, SaveItemsToCopy); //shortcutTable[KeyCode.LeftShift].Add(KeyCode.V, () => CommandInvoker.instance.Invoke(new CopyObjectCommand())); - shortcutTable[KeyCode.LeftControl].Add(KeyCode.D, () => CommandInvoker.instance.Invoke(new CopyObjectCommand())); + shortcutTable[KeyCode.LeftControl].Add(KeyCode.D, () => + { + if (ManagerHub.instance.Get().selectedRenderObjects.Count == 0) + return; + CommandInvoker.instance.Invoke(new CopyObjectCommand()); + // CanvasManager.instance.GetCanvas().panel_toastmessage.ActivateMessage("Copy"); + }); #else shortcutTable.Add(KeyCode.LeftControl, new Dictionary()); //shortcutTable[KeyCode.LeftControl].Add(KeyCode.C, SaveItemsToCopy); //shortcutTable[KeyCode.LeftControl].Add(KeyCode.V, () => CommandInvoker.instance.Invoke(new CopyObjectCommand())); - shortcutTable[KeyCode.LeftControl].Add(KeyCode.D, () => CommandInvoker.instance.Invoke(new CopyObjectCommand())); + shortcutTable[KeyCode.LeftControl].Add(KeyCode.D, () => + { + if (ManagerHub.instance.Get().selectedRenderObjects.Count == 0) + return; + CommandInvoker.instance.Invoke(new CopyObjectCommand()); + // CanvasManager.instance.GetCanvas().panel_toastmessage.ActivateMessage("Copy"); + }); #endif var handler = new InputHandler(getKeyActions, downKeyActions, upKeyActions, shortcutTable); diff --git a/Assets/Scripts/Studio/Command/CreateConnectedAssetCommand.cs b/Assets/Scripts/Studio/Command/CreateConnectedAssetCommand.cs index 1fd89489..91351124 100644 --- a/Assets/Scripts/Studio/Command/CreateConnectedAssetCommand.cs +++ b/Assets/Scripts/Studio/Command/CreateConnectedAssetCommand.cs @@ -44,8 +44,7 @@ namespace Studio.Command connector.sceneDataContainer.sceneObjects.Remove(connectedAsset.renderObject); var renderObjectHandler = ManagerHub.instance.Get(); - renderObjectHandler.rtgController.SetGizmoTargetObjects(new List()); - renderObjectHandler.DeselectAll(); + renderObjectHandler.RemoveSelection(connectedAsset.renderObject); } } diff --git a/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs b/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs index 0c4bb02d..40648547 100644 --- a/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs +++ b/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs @@ -4,6 +4,8 @@ using Studio.AssetTool; using Studio.HierarchyTree; using Studio.Manage; using Studio.Util; +using System.Drawing.Printing; +using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1; namespace Studio.Command { @@ -11,6 +13,7 @@ namespace Studio.Command { private List copyList; private CustomAssetConnector connector; + List copySources = new List(); public CopyObjectCommand() { @@ -28,19 +31,31 @@ namespace Studio.Command { var renderObjectHandler = ManagerHub.instance.Get(); connector = ManagerHub.instance.Get(); + //Debug.Log("cont " + renderObjectHandler.selectedRenderObjects.Count); + //if (renderObjectHandler.selectedRenderObjects.Count == 0) + // return; - if (renderObjectHandler.selectedRenderObjects.Count == 0) - return; - - List copySources = new List(); copyList = new List(); - for (int i = 0; i < renderObjectHandler.selectedRenderObjects.Count; i++) + + if (copySources.Count == 0) { - ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.renderObject == renderObjectHandler.selectedRenderObjects[i]); - copySources.Add(searchAsset); - ConnectedAsset copyAsset = new ConnectedAsset(); - copyList.Add(copyAsset); - connector.connectedAssets.Add(copyAsset); + for (int i = 0; i < renderObjectHandler.selectedRenderObjects.Count; i++) + { + ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.renderObject == renderObjectHandler.selectedRenderObjects[i]); + copySources.Add(searchAsset); + ConnectedAsset copyAsset = new ConnectedAsset(); + copyList.Add(copyAsset); + connector.connectedAssets.Add(copyAsset); + } + } + else + { + for (int i = 0; i < copySources.Count; i++) + { + ConnectedAsset copyAsset = new ConnectedAsset(); + copyList.Add(copyAsset); + connector.connectedAssets.Add(copyAsset); + } } for (int i = 0; i < copyList.Count; i++) @@ -64,7 +79,7 @@ namespace Studio.Command //copyAsset.renderObject.OnOverlabBegin += connector.interferedObjectManager.AddInterferedPair; //copyAsset.renderObject.OnOverlabEnd += connector.interferedObjectManager.RemoveInterferedPair; - List lastParent = new List(); + List lastParent = new List(); for (int j = 0; j < copyAsset.hierarchyItem.layerNum + 1; j++) { lastParent.Add(copyAsset.renderObject.transform); @@ -119,8 +134,6 @@ namespace Studio.Command searchAsset.renderObject.gameObject.SetActive(true); } } - - CanvasManager.instance.GetCanvas().panel_toastmessage.ActivateMessage("Copy"); } public void Undo() @@ -131,6 +144,7 @@ namespace Studio.Command connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem); connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform); connectedAsset.renderObject.gameObject.SetActive(false); + ManagerHub.instance.Get().RemoveSelection(connectedAsset.renderObject); List childItems = connectedAsset.hierarchyItem.GetAll(true); for (int k = 0; k < childItems.Count; k++) @@ -138,15 +152,14 @@ namespace Studio.Command ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]); searchAsset.assetData.RemoveTransform(searchAsset.renderObject.transform); searchAsset.renderObject.gameObject.SetActive(false); + ManagerHub.instance.Get().RemoveSelection(connectedAsset.renderObject); } } - ManagerHub.instance.Get().DeselectAll(); + //ManagerHub.instance.Get().RemoveAllSelections(); var canvas = CanvasManager.instance.GetCanvas(); canvas.panel_dynamicobjectinfo.ResetObjectInfo(); - //connector.onRemoveObjects?.Invoke(); - connector.componentScrollView.DeselectAll(); - var renderObjectHandler = ManagerHub.instance.Get(); - renderObjectHandler.DeselectAll(); + ////connector.onRemoveObjects?.Invoke(); + //connector.componentScrollView.DeselectAll(); } } diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_ToastMessage.cs b/Assets/Scripts/Studio/UI/Panel/Panel_ToastMessage.cs index 869bb360..27fbb514 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_ToastMessage.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_ToastMessage.cs @@ -13,6 +13,8 @@ namespace Studio.UI public Vector2 padding = new Vector2(20f, 10f); private float delay = 1f; + IEnumerator coroutine; + public override void AfterAwake() { transform.SetAsLastSibling(); @@ -20,11 +22,16 @@ namespace Studio.UI public void ActivateMessage(string message) { + if (coroutine != null) + StopCoroutine(coroutine); + Text_Message.text = message; UpdateBackgroundSize(); gameObject.SetActive(true); - StartCoroutine(AutoDeactivateAfterDelay()); + + coroutine = AutoDeactivateAfterDelay(); + StartCoroutine(coroutine); } public void DeactivateMessage()