generated from max/template-unity-project
ulong and grid list wrapper test
- wrapped lists in serialized dicts do work, maybe wrap anything. - note: maybe convert long fields to string fields to support ulong?
This commit is contained in:
@ -9,7 +9,7 @@ namespace VertexColor.ScenePartition.Editor
|
||||
{
|
||||
public static string GetDataPath(ScenePartitionSO scenePartitionSO)
|
||||
{
|
||||
string dataPath = Path.Combine(Application.dataPath, $"../Data/Scenes/{scenePartitionSO.name}");
|
||||
string dataPath = Path.Combine(Application.dataPath, GetRelativeFilePath(scenePartitionSO));
|
||||
|
||||
if (!Directory.Exists(dataPath))
|
||||
{
|
||||
@ -19,6 +19,11 @@ namespace VertexColor.ScenePartition.Editor
|
||||
return dataPath;
|
||||
}
|
||||
|
||||
public static string GetRelativeFilePath(ScenePartitionSO scenePartitionSO)
|
||||
{
|
||||
return $"../Data/ScenePartition/{scenePartitionSO.name}";
|
||||
}
|
||||
|
||||
public static string GetScenePath(ScenePartitionSO scenePartitionSO)
|
||||
{
|
||||
string scenePath = AssetDatabase.GetAssetOrScenePath(scenePartitionSO.SceneAsset);
|
||||
@ -26,26 +31,26 @@ namespace VertexColor.ScenePartition.Editor
|
||||
return scenePath;
|
||||
}
|
||||
|
||||
public static SortedSet<long> FindDeeplyLinkedObjects(SortedList<long, ScenePartition> scenePartitions, long partitionId)
|
||||
public static SortedSet<ulong> FindDeeplyLinkedObjects(SortedList<ulong, ScenePartition> scenePartitions, ulong partitionId)
|
||||
{
|
||||
SortedSet<long> linkedObjects = new SortedSet<long>();
|
||||
SortedSet<ulong> linkedObjects = new SortedSet<ulong>();
|
||||
FindDeeplyLinkedObjectsRecursive(scenePartitions, partitionId, linkedObjects);
|
||||
return linkedObjects;
|
||||
}
|
||||
|
||||
private static void FindDeeplyLinkedObjectsRecursive(SortedList<long, ScenePartition> scenePartitions, long partitionId, SortedSet<long> linkedObjects)
|
||||
private static void FindDeeplyLinkedObjectsRecursive(SortedList<ulong, ScenePartition> scenePartitions, ulong partitionId, SortedSet<ulong> linkedObjects)
|
||||
{
|
||||
if (linkedObjects.Contains(partitionId)) return;
|
||||
if (!scenePartitions.TryGetValue(partitionId, out ScenePartition partition)) return;
|
||||
|
||||
linkedObjects.Add(partitionId);
|
||||
|
||||
foreach (long reference in partition.references)
|
||||
foreach (ulong reference in partition.references)
|
||||
{
|
||||
FindDeeplyLinkedObjectsRecursive(scenePartitions, reference, linkedObjects);
|
||||
if (scenePartitions.TryGetValue(reference, out ScenePartition referencedPartition))
|
||||
{
|
||||
foreach (long subReference in referencedPartition.references)
|
||||
foreach (ulong subReference in referencedPartition.references)
|
||||
{
|
||||
FindDeeplyLinkedObjectsRecursive(scenePartitions, subReference, linkedObjects);
|
||||
}
|
||||
|
Reference in New Issue
Block a user