Add ultimate xr

This commit is contained in:
2024-08-06 21:58:35 +02:00
parent 864033bf10
commit 7165bacd9d
3952 changed files with 2162037 additions and 35 deletions

View File

@@ -0,0 +1,107 @@
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="UxrSdkLocatorFishNet.cs" company="VRMADA">
// Copyright (c) VRMADA, All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System;
using UltimateXR.Core;
using UnityEditor;
using UnityEngine;
namespace UltimateXR.Editor.Sdks.Networking
{
/// <summary>
/// SDK Locator for the FishNet SDK.
/// </summary>
public sealed class UxrSdkLocatorFishNet : UxrSdkLocator
{
#region Public Overrides UxrSdkLocator
/// <inheritdoc />
public override SupportType Support => SupportType.Networking;
/// <inheritdoc />
public override string Name => UxrConstants.SdkFishNet;
/// <inheritdoc />
public override string MinimumUnityVersion => "2020.3";
/// <inheritdoc />
public override string[] AvailableSymbols
{
get
{
if (CurrentState == State.Available)
{
if (CurrentVersion == 0)
{
return new[] { "ULTIMATEXR_USE_FISHNET_SDK" };
}
}
return Array.Empty<string>();
}
}
/// <inheritdoc />
public override string[] AllSymbols
{
get { return new[] { "ULTIMATEXR_USE_FISHNET_SDK" }; }
}
/// <inheritdoc />
public override bool CanBeUpdated => true;
/// <inheritdoc />
public override void TryLocate()
{
CurrentState = State.NotInstalled;
if (IsTypeInAssemblies("FishNet.Managing.NetworkManager"))
{
CurrentVersion = 0;
CurrentState = State.Available;
}
}
/// <inheritdoc />
public override void TryGet()
{
Application.OpenURL("https://assetstore.unity.com/packages/tools/network/fish-net-networking-evolved-207815");
}
/// <inheritdoc />
public override void TryUpdate()
{
TryGet();
}
#endregion
#region Public Methods
/// <summary>
/// Auto-registers the locator each time Unity is launched or the project folder is updated.
/// </summary>
[InitializeOnLoadMethod]
public static void RegisterLocator()
{
UxrSdkManager.RegisterLocator(new UxrSdkLocatorFishNet());
}
#endregion
#region Private Methods
/// <summary>
/// Allows to remove dependencies from the project in case the user removed SDK folders manually.
/// </summary>
[MenuItem(UxrConstants.Editor.MenuPathSdksNetworking + "Remove Symbols for FishNet", priority = UxrConstants.Editor.PriorityMenuPathSdksNetworking)]
private static void RemoveSymbols()
{
UxrSdkManager.RemoveSymbols(new UxrSdkLocatorFishNet());
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 81f3545268a322b4c8b838a85d71619e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,107 @@
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="UxrSdkLocatorMirror.cs" company="VRMADA">
// Copyright (c) VRMADA, All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System;
using UltimateXR.Core;
using UnityEditor;
using UnityEngine;
namespace UltimateXR.Editor.Sdks.Networking
{
/// <summary>
/// SDK Locator for the Mirror SDK.
/// </summary>
public sealed class UxrSdkLocatorMirror : UxrSdkLocator
{
#region Public Overrides UxrSdkLocator
/// <inheritdoc />
public override SupportType Support => SupportType.Networking;
/// <inheritdoc />
public override string Name => UxrConstants.SdkMirror;
/// <inheritdoc />
public override string MinimumUnityVersion => "2020.3";
/// <inheritdoc />
public override string[] AvailableSymbols
{
get
{
if (CurrentState == State.Available)
{
if (CurrentVersion == 0)
{
return new[] { "ULTIMATEXR_USE_MIRROR_SDK" };
}
}
return Array.Empty<string>();
}
}
/// <inheritdoc />
public override string[] AllSymbols
{
get { return new[] { "ULTIMATEXR_USE_MIRROR_SDK" }; }
}
/// <inheritdoc />
public override bool CanBeUpdated => true;
/// <inheritdoc />
public override void TryLocate()
{
CurrentState = State.NotInstalled;
if (IsTypeInAssemblies("Mirror.NetworkBehaviour"))
{
CurrentVersion = 0;
CurrentState = State.Available;
}
}
/// <inheritdoc />
public override void TryGet()
{
Application.OpenURL("https://assetstore.unity.com/packages/tools/network/mirror-129321");
}
/// <inheritdoc />
public override void TryUpdate()
{
TryGet();
}
#endregion
#region Public Methods
/// <summary>
/// Auto-registers the locator each time Unity is launched or the project folder is updated.
/// </summary>
[InitializeOnLoadMethod]
public static void RegisterLocator()
{
UxrSdkManager.RegisterLocator(new UxrSdkLocatorMirror());
}
#endregion
#region Private Methods
/// <summary>
/// Allows to remove dependencies from the project in case the user removed SDK folders manually.
/// </summary>
[MenuItem(UxrConstants.Editor.MenuPathSdksNetworking + "Remove Symbols for Mirror", priority = UxrConstants.Editor.PriorityMenuPathSdksNetworking)]
private static void RemoveSymbols()
{
UxrSdkManager.RemoveSymbols(new UxrSdkLocatorMirror());
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a2515479c46de9a418d8b0297c225363
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,107 @@
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="UxrSdkLocatorPhotonFusion.cs" company="VRMADA">
// Copyright (c) VRMADA, All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System;
using UltimateXR.Core;
using UnityEditor;
using UnityEngine;
namespace UltimateXR.Editor.Sdks.Networking
{
/// <summary>
/// SDK Locator for the Photon Fusion SDK.
/// </summary>
public sealed class UxrSdkLocatorPhotonFusion : UxrSdkLocator
{
#region Public Overrides UxrSdkLocator
/// <inheritdoc />
public override SupportType Support => SupportType.Networking;
/// <inheritdoc />
public override string Name => UxrConstants.SdkPhotonFusion;
/// <inheritdoc />
public override string MinimumUnityVersion => "2020.3";
/// <inheritdoc />
public override string[] AvailableSymbols
{
get
{
if (CurrentState == State.Available)
{
if (CurrentVersion == 0)
{
return new[] { "ULTIMATEXR_USE_PHOTONFUSION_SDK" };
}
}
return Array.Empty<string>();
}
}
/// <inheritdoc />
public override string[] AllSymbols
{
get { return new[] { "ULTIMATEXR_USE_PHOTONFUSION_SDK" }; }
}
/// <inheritdoc />
public override bool CanBeUpdated => true;
/// <inheritdoc />
public override void TryLocate()
{
CurrentState = State.NotInstalled;
if (IsTypeInAssemblies("Fusion.NetworkBehaviour"))
{
CurrentVersion = 0;
CurrentState = State.Available;
}
}
/// <inheritdoc />
public override void TryGet()
{
Application.OpenURL("https://doc.photonengine.com/fusion/current/getting-started/sdk-download");
}
/// <inheritdoc />
public override void TryUpdate()
{
TryGet();
}
#endregion
#region Public Methods
/// <summary>
/// Auto-registers the locator each time Unity is launched or the project folder is updated.
/// </summary>
[InitializeOnLoadMethod]
public static void RegisterLocator()
{
UxrSdkManager.RegisterLocator(new UxrSdkLocatorPhotonFusion());
}
#endregion
#region Private Methods
/// <summary>
/// Allows to remove dependencies from the project in case the user removed SDK folders manually.
/// </summary>
[MenuItem(UxrConstants.Editor.MenuPathSdksNetworking + "Remove Symbols for Photon Fusion", priority = UxrConstants.Editor.PriorityMenuPathSdksNetworking)]
private static void RemoveSymbols()
{
UxrSdkManager.RemoveSymbols(new UxrSdkLocatorPhotonFusion());
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2fa9de1a571bad948a5d67d17f13cc35
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,110 @@
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="UxrSdkLocatorUnityNetCode.cs" company="VRMADA">
// Copyright (c) VRMADA, All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System;
using UltimateXR.Core;
using UnityEditor;
using UnityEngine;
namespace UltimateXR.Editor.Sdks.Networking
{
/// <summary>
/// SDK Locator for the Unity NetCode package.
/// </summary>
public sealed class UxrSdkLocatorUnityNetCode : UxrSdkLocator
{
#region Public Overrides UxrSdkLocator
/// <inheritdoc />
public override SupportType Support => SupportType.Networking;
/// <inheritdoc />
public override string PackageName => "com.unity.netcode.gameobjects";
/// <inheritdoc />
public override string Name => UxrConstants.SdkUnityNetCode;
/// <inheritdoc />
public override string MinimumUnityVersion => "2020.3";
/// <inheritdoc />
public override string[] AvailableSymbols
{
get
{
if (CurrentState == State.Available)
{
if (CurrentVersion == 0)
{
return new[] { "ULTIMATEXR_USE_UNITY_NETCODE" };
}
}
return Array.Empty<string>();
}
}
/// <inheritdoc />
public override string[] AllSymbols
{
get { return new[] { "ULTIMATEXR_USE_UNITY_NETCODE" }; }
}
/// <inheritdoc />
public override bool CanBeUpdated => true;
/// <inheritdoc />
public override void TryLocate()
{
// UltimateXR assembly already sets up version define for the Unity NetCode package
#if ULTIMATEXR_USE_UNITY_NETCODE
CurrentVersion = 0;
CurrentState = State.Available;
#else
CurrentState = State.NotInstalled;
#endif
}
/// <inheritdoc />
public override void TryGet()
{
Application.OpenURL("https://docs-multiplayer.unity3d.com/netcode/current/installation/");
}
/// <inheritdoc />
public override void TryUpdate()
{
TryGet();
}
#endregion
#region Public Methods
/// <summary>
/// Auto-registers the locator each time Unity is launched or the project folder is updated.
/// </summary>
[InitializeOnLoadMethod]
public static void RegisterLocator()
{
UxrSdkManager.RegisterLocator(new UxrSdkLocatorUnityNetCode());
}
#endregion
#region Private Methods
/// <summary>
/// Allows to remove dependencies from the project in case the user removed SDK folders manually.
/// </summary>
[MenuItem(UxrConstants.Editor.MenuPathSdksNetworking + "Remove Symbols for Unity NetCode", priority = UxrConstants.Editor.PriorityMenuPathSdksNetworking)]
private static void RemoveSymbols()
{
UxrSdkManager.RemoveSymbols(new UxrSdkLocatorUnityNetCode());
}
#endregion
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f88a10bc760b2464e950835079520dfc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: