Files
Test-Multiplayer/Library/PackageCache/com.unity.dedicated-server@5a2666836321/Bridge/InternalUtility.cs
pelpanagiotis 329b7d3183 First Commit
2025-12-21 18:31:02 +02:00

51 lines
2.1 KiB
C#

using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Profile;
namespace Unity.DedicatedServer.Editor.Internal
{
internal static class InternalUtility
{
// This is the only internal API we should access from the BuildProfile module
public static void GetBuildProfileInternalData(BuildProfile buildProfile, out StandaloneBuildSubtarget buildSubtarget, out BuildTarget buildTarget, out string platformId)
{
buildSubtarget = buildProfile.subtarget;
buildTarget = buildProfile.buildTarget;
platformId = buildProfile.platformId;
}
public static bool IsStandalonePlatform(BuildTarget buildTarget)
=> BuildPipeline.GetBuildTargetGroup(buildTarget) == BuildTargetGroup.Standalone;
public static bool IsServerProfile(BuildProfile buildProfile)
{
GetBuildProfileInternalData(buildProfile, out var buildSubtarget, out var buildTarget, out _);
return buildSubtarget == StandaloneBuildSubtarget.Server && IsStandalonePlatform(buildTarget);
}
public static bool IsClassicProfile(BuildProfile buildProfile)
{
return (buildProfile.hideFlags & UnityEngine.HideFlags.DontSave) != 0;
}
public static NamedBuildTarget GetNamedBuildTarget(BuildTarget buildTarget, StandaloneBuildSubtarget subtarget)
{
if (subtarget == StandaloneBuildSubtarget.Server && IsStandalonePlatform(buildTarget))
return NamedBuildTarget.Server;
return NamedBuildTarget.FromBuildTargetGroup(BuildPipeline.GetBuildTargetGroup(buildTarget));
}
#if !UNITY_6000_1_OR_NEWER
public static string GetUniqueKeyForClassicTarget(BuildTarget buildTarget, StandaloneBuildSubtarget subtarget)
{
var platformGuid = (subtarget == StandaloneBuildSubtarget.Server && IsStandalonePlatform(buildTarget))
? BuildTargetDiscovery.GetGUIDFromBuildTarget(NamedBuildTarget.Server, buildTarget)
: BuildTargetDiscovery.GetGUIDFromBuildTarget(buildTarget);
return platformGuid.ToString();
}
#endif
}
}