DragonECS-Unity/src/Tools/RefRepairer/UnityObjectDataBase.cs
2024-10-05 18:40:18 +08:00

41 lines
1.2 KiB
C#

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine.SceneManagement;
using UnityObject = UnityEngine.Object;
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
{
internal abstract class UnityObjectDataBase
{
public abstract GUID AssetGuid { get; }
public string GetLocalAssetPath()
{
return AssetDatabase.GUIDToAssetPath(AssetGuid);
}
}
internal class UnityObjectData : UnityObjectDataBase
{
private readonly GUID _assetGUID;
public readonly UnityObject UnityObject;
public sealed override GUID AssetGuid { get { return _assetGUID; } }
public UnityObjectData(UnityObject unityObject, string pathToPrefab)
{
_assetGUID = AssetDatabase.GUIDFromAssetPath(pathToPrefab);
UnityObject = unityObject;
}
}
internal class SceneObjectData : UnityObjectDataBase
{
private readonly GUID _assetGUID;
public readonly string SceneName;
public sealed override GUID AssetGuid { get { return _assetGUID; } }
public SceneObjectData(Scene scene)
{
_assetGUID = AssetDatabase.GUIDFromAssetPath(scene.path);
SceneName = scene.name;
}
}
}
#endif