Merge branch 'main' into pgd/20250403

This commit is contained in:
geondo55
2025-04-03 11:44:11 +09:00
10 changed files with 300 additions and 277 deletions

View File

@@ -0,0 +1,124 @@
using System.Collections.Generic;
using UnityEngine;
using XED.Asset;
using XED.HierarchyTree;
using XED.Util;
namespace XED.Command
{
public class CopyObjectCommand : IReversibleCommand
{
private List<ConnectedAsset> copySources;
private List<ConnectedAsset> copyList;
private CustomAssetConnector connector;
public CopyObjectCommand(List<ConnectedAsset> copySources, List<ConnectedAsset> copyList, CustomAssetConnector connector)
{
this.copySources = copySources;
this.copyList = copyList;
this.connector = connector;
}
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public bool CanExecute()
{
throw new System.NotImplementedException();
}
public void Execute()
{
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset copySource = copySources[i];
ConnectedAsset copyAsset = copyList[i];
if (copyAsset.hierarchyItem == null)
{
GameObject copyObject = Object.Instantiate(connector.renderObjectPrefab);
copyAsset.assetData = copySource.assetData;
copyAsset.hierarchyItem = copySource.hierarchyItem.Copy();
copyAsset.renderObject = copyObject.GetComponent<CustomAssetRenderObject>();
copyAsset.renderObject.getBounds = copySource.assetData.GetCombinedBoundary;
copyAsset.renderObject.onTransformChanged = copySource.assetData.OnTransformDataChanged;
copyAsset.renderObject.instantiateObject = copySource.assetData.InstantiateLoadedObject;
copyAsset.renderObject.CreateRenderObject();
copyAsset.renderObject.transform.position = copySource.renderObject.transform.position;
copyAsset.renderObject.transform.rotation = copySource.renderObject.transform.rotation;
copyAsset.renderObject.transform.localScale = copySource.renderObject.transform.localScale;
List<Transform> lastParent = new List<Transform>();
for (int j = 0; j < copyAsset.hierarchyItem.layerNum + 1; j++)
{
lastParent.Add(copyAsset.renderObject.transform);
}
List<HierarchyItem> srcChildren = copySource.hierarchyItem.GetAll(true);
List<HierarchyItem> dstChildren = copyAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < srcChildren.Count; k++)
{
ConnectedAsset childSource = connector.connectedAssets.Find((x) => x.hierarchyItem == srcChildren[k]);
GameObject copyChildObject = Object.Instantiate(connector.renderObjectPrefab);
ConnectedAsset childAsset = new ConnectedAsset();
childAsset.assetData = childSource.assetData;
childAsset.hierarchyItem = dstChildren[k];
childAsset.renderObject = copyChildObject.GetComponent<CustomAssetRenderObject>();
childAsset.renderObject.getBounds = childAsset.assetData.GetCombinedBoundary;
childAsset.renderObject.onTransformChanged = childAsset.assetData.OnTransformDataChanged;
childAsset.renderObject.instantiateObject = copySource.assetData.InstantiateLoadedObject;
childAsset.renderObject.CreateRenderObject();
childAsset.renderObject.transform.position = childSource.renderObject.transform.position;
childAsset.renderObject.transform.rotation = childSource.renderObject.transform.rotation;
childAsset.renderObject.transform.localScale = childSource.renderObject.transform.localScale;
childAsset.renderObject.transform.parent = lastParent[childAsset.hierarchyItem.layerNum - 1];
if (lastParent.Count <= childAsset.hierarchyItem.layerNum)
{
lastParent.Add(childAsset.renderObject.transform);
}
else
{
lastParent[childAsset.hierarchyItem.layerNum] = childAsset.renderObject.transform;
}
connector.connectedAssets.Add(childAsset);
}
}
copyAsset.assetData.AddTransformToRender(copyAsset.renderObject.transform);
copyAsset.renderObject.gameObject.SetActive(true);
copyAsset.renderObject.Hide();
connector.componentScrollView.AddItem(copyAsset.hierarchyItem);
}
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset connectedAsset = copyList[i];
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.AddTransformToRender(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(true);
}
}
}
public void Undo()
{
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset connectedAsset = copyList[i];
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.RemoveTransform(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(false);
}
}
connector.onRemoveObjects?.Invoke();
connector.componentScrollView.DeselectAll();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 578e32b3992591548ba59a300b73ec97

View File

@@ -0,0 +1,43 @@
using XED.Asset;
namespace XED.Command
{
public class CreateConnectedAssetCommand : IReversibleCommand
{
private ConnectedAsset connectedAsset;
private CustomAssetConnector connector;
public CreateConnectedAssetCommand(ConnectedAsset connectedAsset, CustomAssetConnector connector)
{
this.connectedAsset = connectedAsset;
this.connector = connector;
}
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public bool CanExecute()
{
throw new System.NotImplementedException();
}
public void Execute()
{
if (!connectedAsset.renderObject.gameObject.activeSelf)
{
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(true);
connector.componentScrollView.AddItem(connectedAsset.hierarchyItem);
}
connectedAsset.renderObject.Hide();
connector.connectedAssets.Add(connectedAsset);
}
public void Undo()
{
connector.connectedAssets.Remove(connectedAsset);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 89b52b67b0ae9d9419a78ef6838eca3d

View File

@@ -1,267 +0,0 @@
using System.Collections.Generic;
using System.Drawing.Printing;
using UnityEngine;
using XED.Asset;
using XED.HierarchyTree;
using XED.Manage;
using XED.Util;
namespace XED
{
public class CustomAssetCommandHandler
{
private CustomAssetConnector connector;
public CustomAssetCommandHandler(CustomAssetConnector connector)
{
this.connector = connector;
}
public void CreateConnectedAsset()
{
ConnectedAsset connectedAsset = new ConnectedAsset
{
assetData = connector.selectedAssetData,
hierarchyItem = connector.componentScrollView.AddItem(connector.selectedAssetData.assetName, connector.selectedItem, HierarchyItemType.obj),
renderObject = connector.selectRenderObject
};
connectedAsset.renderObject.onTransformChanged = connectedAsset.assetData.OnTransformDataChanged;
var command = new ActionCommand(
() => ExecuteCreateConnectedAsset(connectedAsset),
() => UndoCreateConnectedAsset(connectedAsset)
);
CommandManager.I.ExecuteCommand(command);
}
private void ExecuteCreateConnectedAsset(ConnectedAsset connectedAsset)
{
if (!connectedAsset.renderObject.gameObject.activeSelf)
{
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(true);
connector.componentScrollView.AddItem(connectedAsset.hierarchyItem);
}
connectedAsset.renderObject.Hide();
connector.connectedAssets.Add(connectedAsset);
}
private void UndoCreateConnectedAsset(ConnectedAsset connectedAsset)
{
connector.connectedAssets.Remove(connectedAsset);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
}
public void OnRemoveObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
{
return;
}
List<ConnectedAsset> removeList = new List<ConnectedAsset>();
List<int> siblingIndex = new List<int>();
for (int i = 0; i < objects.Count; i++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.renderObject == objects[i]);
removeList.Add(searchAsset);
siblingIndex.Add(searchAsset.hierarchyItem.GetSiblingIndex());
}
var command = new ActionCommand(
() => ExecuteRemoveObject(removeList),
() => UndoRemoveObject(removeList, siblingIndex)
);
CommandManager.I.ExecuteCommand(command);
}
public void OnCompletelyRemoveObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
{
return;
}
List<ConnectedAsset> removeList = new List<ConnectedAsset>();
List<int> siblingIndex = new List<int>();
for (int i = 0; i < objects.Count; i++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.renderObject == objects[i]);
removeList.Add(searchAsset);
siblingIndex.Add(searchAsset.hierarchyItem.GetSiblingIndex());
}
ExecuteCompletelyRemoveObject(removeList);
}
private void ExecuteRemoveObject(List<ConnectedAsset> removeList)
{
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.RemoveTransform(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(false);
}
}
connector.onRemoveObjects?.Invoke();
connector.componentScrollView.DeselectAll();
}
private void ExecuteCompletelyRemoveObject(List<ConnectedAsset> removeList)
{
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
}
connector.onCompletelyRemoveObjects?.Invoke(removeList);
connector.componentScrollView.DeselectAll();
}
private void UndoRemoveObject(List<ConnectedAsset> removeList, List<int> siblingIndex)
{
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
connector.componentScrollView.AttachItem(connectedAsset.hierarchyItem.parent, connectedAsset.hierarchyItem, siblingIndex[i]);
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(true);
}
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.AddTransformToRender(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(true);
}
}
}
public void OnCopyObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
{
return;
}
List<ConnectedAsset> copySources = new List<ConnectedAsset>();
List<ConnectedAsset> copyList = new List<ConnectedAsset>();
for (int i = 0; i < objects.Count; i++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.renderObject == objects[i]);
copySources.Add(searchAsset);
ConnectedAsset copyAsset = new ConnectedAsset();
copyList.Add(copyAsset);
connector.connectedAssets.Add(copyAsset);
}
var command = new ActionCommand(
() => ExecuteCopyObject(copySources, copyList),
() => UndoCopyObject(copyList)
);
CommandManager.I.ExecuteCommand(command);
}
private void ExecuteCopyObject(List<ConnectedAsset> copySources, List<ConnectedAsset> copyList)
{
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset copySource = copySources[i];
ConnectedAsset copyAsset = copyList[i];
if (copyAsset.hierarchyItem == null)
{
GameObject copyObject = Object.Instantiate(connector.renderObjectPrefab);
copyAsset.assetData = copySource.assetData;
copyAsset.hierarchyItem = copySource.hierarchyItem.Copy();
copyAsset.renderObject = copyObject.GetComponent<CustomAssetRenderObject>();
copyAsset.renderObject.getBounds = copySource.assetData.GetCombinedBoundary;
copyAsset.renderObject.onTransformChanged = copySource.assetData.OnTransformDataChanged;
copyAsset.renderObject.instantiateObject = copySource.assetData.InstantiateLoadedObject;
copyAsset.renderObject.CreateRenderObject();
copyAsset.renderObject.transform.position = copySource.renderObject.transform.position;
copyAsset.renderObject.transform.rotation = copySource.renderObject.transform.rotation;
copyAsset.renderObject.transform.localScale = copySource.renderObject.transform.localScale;
List<Transform> lastParent = new List<Transform>();
for (int j = 0; j < copyAsset.hierarchyItem.layerNum + 1; j++)
{
lastParent.Add(copyAsset.renderObject.transform);
}
List<HierarchyItem> srcChildren = copySource.hierarchyItem.GetAll(true);
List<HierarchyItem> dstChildren = copyAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < srcChildren.Count; k++)
{
ConnectedAsset childSource = connector.connectedAssets.Find((x) => x.hierarchyItem == srcChildren[k]);
GameObject copyChildObject = Object.Instantiate(connector.renderObjectPrefab);
ConnectedAsset childAsset = new ConnectedAsset();
childAsset.assetData = childSource.assetData;
childAsset.hierarchyItem = dstChildren[k];
childAsset.renderObject = copyChildObject.GetComponent<CustomAssetRenderObject>();
childAsset.renderObject.getBounds = childAsset.assetData.GetCombinedBoundary;
childAsset.renderObject.onTransformChanged = childAsset.assetData.OnTransformDataChanged;
childAsset.renderObject.instantiateObject = copySource.assetData.InstantiateLoadedObject;
childAsset.renderObject.CreateRenderObject();
childAsset.renderObject.transform.position = childSource.renderObject.transform.position;
childAsset.renderObject.transform.rotation = childSource.renderObject.transform.rotation;
childAsset.renderObject.transform.localScale = childSource.renderObject.transform.localScale;
childAsset.renderObject.transform.parent = lastParent[childAsset.hierarchyItem.layerNum - 1];
if (lastParent.Count <= childAsset.hierarchyItem.layerNum)
{
lastParent.Add(childAsset.renderObject.transform);
}
else
{
lastParent[childAsset.hierarchyItem.layerNum] = childAsset.renderObject.transform;
}
connector.connectedAssets.Add(childAsset);
}
}
copyAsset.assetData.AddTransformToRender(copyAsset.renderObject.transform);
copyAsset.renderObject.gameObject.SetActive(true);
copyAsset.renderObject.Hide();
connector.componentScrollView.AddItem(copyAsset.hierarchyItem);
}
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset connectedAsset = copyList[i];
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.AddTransformToRender(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(true);
}
}
}
private void UndoCopyObject(List<ConnectedAsset> copyList)
{
for (int i = 0; i < copyList.Count; i++)
{
ConnectedAsset connectedAsset = copyList[i];
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.RemoveTransform(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(false);
}
}
connector.onRemoveObjects?.Invoke();
connector.componentScrollView.DeselectAll();
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: e3e04d3969bc8524db95f7a57e8357f8

View File

@@ -8,6 +8,7 @@ using XED.Util;
using XED.HierarchyTree;
using System.Linq;
using UnityEditor;
using System;
namespace XED.Asset
{
@@ -31,12 +32,10 @@ namespace XED.Asset
public System.Action<string, List<GameObject>> onSelectObjects;
public System.Action onDeselectObjects;
public System.Action onRemoveObjects;
public System.Action<List<ConnectedAsset>> onCompletelyRemoveObjects;
public System.Action onAssetDropped;
public CustomAssetDataHandler assetDataHandler;
public CustomAssetEventHandler assetEventHandler;
public CustomAssetCommandHandler assetCommandHandler;
ProjectManager projectManager;
void Awake()
@@ -45,7 +44,6 @@ namespace XED.Asset
renderObjectHandler = FindFirstObjectByType<RenderObjectHandler>();
assetDataHandler = new CustomAssetDataHandler(this);
assetEventHandler = new CustomAssetEventHandler(this);
assetCommandHandler = new CustomAssetCommandHandler(this);
projectManager = FindSingle<ProjectManager>();
}
@@ -67,14 +65,53 @@ namespace XED.Asset
saveLoadFBXData.onRemoveFbxFile.AddListener(assetDataHandler.OnRemoveFbxFile);
renderObjectHandler.onSelectObject.AddListener(assetEventHandler.OnSelectObjectFromObjectHandler);
renderObjectHandler.onCopyObject.AddListener(assetCommandHandler.OnCopyObject);
renderObjectHandler.onRemoveObject.AddListener(assetCommandHandler.OnRemoveObject);
renderObjectHandler.onCopyObject.AddListener(OnCopyObject);
renderObjectHandler.onRemoveObject.AddListener(OnRemoveObject);
renderObjectHandler.onOrderByHierachy.AddListener(OrderByHierarchy);
renderObjectHandler.onDeselectAll += OnDeselectAll;
projectManager.onRemoveAsset += assetCommandHandler.OnCompletelyRemoveObject;
projectManager.onRemoveAsset += OnRemoveObject;
}
private void OnRemoveObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
{
return;
}
List<ConnectedAsset> removeList = new List<ConnectedAsset>();
List<int> siblingIndex = new List<int>();
for (int i = 0; i < objects.Count; i++)
{
ConnectedAsset searchAsset = connectedAssets.Find((x) => x.renderObject == objects[i]);
removeList.Add(searchAsset);
siblingIndex.Add(searchAsset.hierarchyItem.GetSiblingIndex());
}
var command = new RemoveObjectCommand(removeList, siblingIndex, this);
CommandManager.I.ExecuteCommand(command);
}
private void OnCopyObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
{
return;
}
List<ConnectedAsset> copySources = new List<ConnectedAsset>();
List<ConnectedAsset> copyList = new List<ConnectedAsset>();
for (int i = 0; i < objects.Count; i++)
{
ConnectedAsset searchAsset = connectedAssets.Find((x) => x.renderObject == objects[i]);
copySources.Add(searchAsset);
ConnectedAsset copyAsset = new ConnectedAsset();
copyList.Add(copyAsset);
connectedAssets.Add(copyAsset);
}
var command = new CopyObjectCommand(copySources, copyList, this);
CommandManager.I.ExecuteCommand(command);
}
// Update is called once per frame
void Update()
{
@@ -118,7 +155,7 @@ namespace XED.Asset
bool isPointerOutScrollRect = !assetScrollRect.IsPointerOverScrollRect();
if (item != null && isPointerOutScrollRect)
{
assetCommandHandler.CreateConnectedAsset();
CreateConnectedAsset();
}
else
{
@@ -129,6 +166,19 @@ namespace XED.Asset
selectedAssetData = null;
onAssetDropped?.Invoke();
}
void CreateConnectedAsset()
{
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, this);
CommandManager.I.ExecuteCommand(command);
}
public void OnParentChanged(HierarchyItem parentItem, HierarchyItem childItem)
{
ConnectedAsset parentAsset = connectedAssets.Find((x) => x.hierarchyItem == parentItem);

View File

@@ -0,0 +1,70 @@
using System.Collections.Generic;
using XED.Asset;
using XED.HierarchyTree;
namespace XED.Command
{
public class RemoveObjectCommand : IReversibleCommand
{
private List<ConnectedAsset> removeList;
private List<int> siblingIndex;
private CustomAssetConnector connector;
public RemoveObjectCommand(List<ConnectedAsset> removeList, List<int> siblingIndex, CustomAssetConnector connector)
{
this.removeList = removeList;
this.siblingIndex = siblingIndex;
this.connector = connector;
}
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public bool CanExecute()
{
throw new System.NotImplementedException();
}
public void Execute()
{
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
connector.componentScrollView.RemoveItem(connectedAsset.hierarchyItem);
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(false);
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.RemoveTransform(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(false);
}
}
connector.onRemoveObjects?.Invoke();
connector.componentScrollView.DeselectAll();
}
public void Undo()
{
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
connector.componentScrollView.AttachItem(connectedAsset.hierarchyItem.parent, connectedAsset.hierarchyItem, siblingIndex[i]);
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
connectedAsset.renderObject.gameObject.SetActive(true);
}
for (int i = 0; i < removeList.Count; i++)
{
ConnectedAsset connectedAsset = removeList[i];
List<HierarchyItem> childItems = connectedAsset.hierarchyItem.GetAll(true);
for (int k = 0; k < childItems.Count; k++)
{
ConnectedAsset searchAsset = connector.connectedAssets.Find((x) => x.hierarchyItem == childItems[k]);
searchAsset.assetData.AddTransformToRender(searchAsset.renderObject.transform);
searchAsset.renderObject.gameObject.SetActive(true);
}
}
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 712363d28f807c946a7689ecb0137ea3

View File

@@ -3,6 +3,5 @@ namespace XED.Command
public interface IReversibleCommand : ICommand
{
public abstract void Undo();
public abstract void Redo();
}
}