Merge pull request 'CopyObject Undo/Redo 오류' (#221) from pgd/20250721_1 into main
Reviewed-on: http://220.90.135.190:3000/UVCXR/Studio/pulls/221
This commit was merged in pull request #221.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -158,7 +158,6 @@ namespace Studio.AssetTool
|
||||
|
||||
ManagerHub.instance.Get<CustomAssetConnector>().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<KeyCode, Action>());
|
||||
//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<RenderObjectHandler>().selectedRenderObjects.Count == 0)
|
||||
return;
|
||||
CommandInvoker.instance.Invoke(new CopyObjectCommand());
|
||||
// CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_toastmessage.ActivateMessage("Copy");
|
||||
});
|
||||
#else
|
||||
shortcutTable.Add(KeyCode.LeftControl, new Dictionary<KeyCode, Action>());
|
||||
//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<RenderObjectHandler>().selectedRenderObjects.Count == 0)
|
||||
return;
|
||||
CommandInvoker.instance.Invoke(new CopyObjectCommand());
|
||||
// CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_toastmessage.ActivateMessage("Copy");
|
||||
});
|
||||
#endif
|
||||
|
||||
var handler = new InputHandler(getKeyActions, downKeyActions, upKeyActions, shortcutTable);
|
||||
|
||||
@@ -44,8 +44,7 @@ namespace Studio.Command
|
||||
connector.sceneDataContainer.sceneObjects.Remove(connectedAsset.renderObject);
|
||||
|
||||
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
|
||||
renderObjectHandler.rtgController.SetGizmoTargetObjects(new List<GameObject>());
|
||||
renderObjectHandler.DeselectAll();
|
||||
renderObjectHandler.RemoveSelection(connectedAsset.renderObject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<ConnectedAsset> copyList;
|
||||
private CustomAssetConnector connector;
|
||||
List<ConnectedAsset> copySources = new List<ConnectedAsset>();
|
||||
|
||||
public CopyObjectCommand()
|
||||
{
|
||||
@@ -28,19 +31,31 @@ namespace Studio.Command
|
||||
{
|
||||
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
|
||||
connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||
//Debug.Log("cont " + renderObjectHandler.selectedRenderObjects.Count);
|
||||
//if (renderObjectHandler.selectedRenderObjects.Count == 0)
|
||||
// return;
|
||||
|
||||
if (renderObjectHandler.selectedRenderObjects.Count == 0)
|
||||
return;
|
||||
|
||||
List<ConnectedAsset> copySources = new List<ConnectedAsset>();
|
||||
copyList = new List<ConnectedAsset>();
|
||||
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 <Transform> lastParent = new List<Transform>();
|
||||
List<Transform> lastParent = new List<Transform>();
|
||||
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<Canvas_Popup>().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<RenderObjectHandler>().RemoveSelection(connectedAsset.renderObject);
|
||||
|
||||
List<HierarchyItem> 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<RenderObjectHandler>().RemoveSelection(connectedAsset.renderObject);
|
||||
}
|
||||
}
|
||||
ManagerHub.instance.Get<RenderObjectHandler>().DeselectAll();
|
||||
//ManagerHub.instance.Get<RenderObjectHandler>().RemoveAllSelections();
|
||||
var canvas = CanvasManager.instance.GetCanvas<Canvas_Popup>();
|
||||
canvas.panel_dynamicobjectinfo.ResetObjectInfo();
|
||||
//connector.onRemoveObjects?.Invoke();
|
||||
connector.componentScrollView.DeselectAll();
|
||||
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
|
||||
renderObjectHandler.DeselectAll();
|
||||
////connector.onRemoveObjects?.Invoke();
|
||||
//connector.componentScrollView.DeselectAll();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user