arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.collab-proxy@ab839cc7d2ad/Editor/Entities/GetSubScenePathFromInstance.cs
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

44 lines
1.2 KiB
C#

#if HAS_ENTITIES_PACKAGE
using UnityEditor;
using UnityEngine;
using Unity.Scenes;
using Unity.PlasticSCM.Editor.AssetsOverlays;
using Object = UnityEngine.Object;
namespace Unity.PlasticSCM.Editor.Entities
{
internal class GetSubScenePathFromInstance : DrawHierarchyOverlay.IGetAssetPathFromInstance
{
internal static void Register()
{
DrawHierarchyOverlay.GetSubSceneAssetPath = new GetSubScenePathFromInstance();
}
bool DrawHierarchyOverlay.IGetAssetPathFromInstance.TryGetAssetPath(
int instanceID,
out string assetPath)
{
assetPath = null;
Object hierarchyObject = EditorUtility.InstanceIDToObject(instanceID);
if (hierarchyObject == null || hierarchyObject is not GameObject)
return false;
assetPath = GetSubScenePathFromGameObject((GameObject) hierarchyObject);
return assetPath != null;
}
string GetSubScenePathFromGameObject(GameObject gameObject)
{
SubScene subSceneComponent = gameObject.GetComponent<SubScene>();
return subSceneComponent == null ? null : subSceneComponent.EditableScenePath;
}
}
}
#endif