Files
Studio/Assets/Scripts/Studio/Service/AssetDataService.cs
2025-04-03 11:26:41 +09:00

34 lines
1.2 KiB
C#

using System.Collections.Generic;
using XED.Util;
using XED.Asset;
using System.Linq;
using XED.HierarchyTree;
namespace XED.Service
{
public class AssetDataService
{
public List<AssetData> SortAssetDatas(List<ConnectedAsset> connectedAssets)
{
return connectedAssets
.Where(asset => asset.hierarchyItem.linkedObject.activeSelf)
.OrderBy(asset => asset.hierarchyItem.layerNum)
.ThenBy(asset => asset.hierarchyItem.GetSiblingIndex())
.Select(asset => CreateAssetData(asset.hierarchyItem))
.ToList();
}
public AssetData CreateAssetData(HierarchyItem hierarchyItem)
{
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()
);
}
}
}