From ab5d034f6ed982471c38ff58263d35a78a12df26 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Thu, 28 Nov 2024 12:36:48 +0100 Subject: [PATCH] UNITY 6 compatibility improvements --- .../Scripts/Extensions/UnityXR/UnityXR.cs | 8 ++++++-- .../Scripts/Interaction/HandInteraction.cs | 12 ++++++++++++ .../Scripts/Movements/HandMovements.cs | 5 +++++ .../Scripts/Networking/HumanoidNetworking.cs | 8 ++++++++ .../Scripts/Networking/NetworkingStatusUI.cs | 11 ++++++----- .../Scripts/Physics/HandPhysics.cs | 8 ++++++++ .../Scripts/Physics/RigidbodyData.cs | 10 ++++++++++ .../Scripts/Targets/FootTarget.cs | 6 +++++- .../Scripts/Targets/HandTarget.cs | 9 +++++++++ .../Scripts/Targets/HeadTarget.cs | 15 +++++---------- .../Scripts/Targets/HipsTarget.cs | 6 +++++- .../HumanoidControl/Scripts/Tools/MenuManager.cs | 4 ++++ Runtime/HumanoidControl/Scripts/Tools/Redrop.cs | 10 +++++++--- Runtime/Sites/Scripts/HandInterface.cs | 10 ++++++---- Runtime/Sites/Scripts/HumanoidInterface.cs | 6 +++++- Runtime/Sites/Scripts/MouseCursor.cs | 4 ++++ Runtime/Sites/Scripts/Site.cs | 16 ++++++++++++++++ Runtime/Sites/Scripts/StartScene.cs | 12 ++++++++++-- Runtime/Tools/Physics/HybridPhysics.cs | 4 ++++ Runtime/Tools/Physics/RigidbodyDisabled.cs | 10 ++++++++++ Runtime/Tools/Scripts/HumanoidSpawnPoint.cs | 12 ++++++++---- Runtime/Tools/Scripts/InteractionModule.cs | 6 +++++- Runtime/Tools/Scripts/InteractionPointer.cs | 8 ++++++++ Runtime/Tools/Scripts/Socket.cs | 8 ++++++-- Runtime/Tools/Scripts/Spawner.cs | 4 ++++ Runtime/Visitors/Scripts/UI/SiteDetailsUI.cs | 10 ++++++---- Runtime/Visitors/Scripts/UI/SitesUI.cs | 10 +++++++++- Runtime/Visitors/Scripts/VisitorPossessions.cs | 8 ++++++++ 28 files changed, 199 insertions(+), 41 deletions(-) diff --git a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXR.cs b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXR.cs index 51e9964..16823eb 100644 --- a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXR.cs +++ b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXR.cs @@ -52,7 +52,11 @@ namespace Passer.Tracking { if (_hmd != null) return _hmd; +#if UNITY_6000_0_OR_NEWER + _hmd = FindAnyObjectByType(); +#else _hmd = FindObjectOfType(); +#endif return _hmd; } } @@ -135,7 +139,7 @@ namespace Passer.Tracking { Object.DestroyImmediate(plane.gameObject); } - #endregion Hmd +#endregion Hmd #region Controller @@ -238,7 +242,7 @@ namespace Passer.Tracking { #endregion - #endregion Manage +#endregion Manage #region Init diff --git a/Runtime/HumanoidControl/Scripts/Interaction/HandInteraction.cs b/Runtime/HumanoidControl/Scripts/Interaction/HandInteraction.cs index d409dc0..09b8bfa 100644 --- a/Runtime/HumanoidControl/Scripts/Interaction/HandInteraction.cs +++ b/Runtime/HumanoidControl/Scripts/Interaction/HandInteraction.cs @@ -32,7 +32,11 @@ namespace Passer.Humanoid { inputModule = humanoid.GetComponent(); if (inputModule == null) { +#if UNITY_6000_0_OR_NEWER + inputModule = Object.FindAnyObjectByType(); +#else inputModule = Object.FindObjectOfType(); +#endif if (inputModule == null) { inputModule = humanoid.gameObject.AddComponent(); } @@ -825,7 +829,11 @@ namespace Passer.Humanoid { Rigidbody objRigidbody = RigidbodyDisabled.UnparentRigidbody(handPalm, grabbedObject.transform); if (objRigidbody != null && !objRigidbody.isKinematic) { if (handRigidbody != null) { +#if UNITY_6000_0_OR_NEWER + objRigidbody.linearVelocity = handRigidbody.linearVelocity; +#else objRigidbody.velocity = handRigidbody.velocity; +#endif objRigidbody.angularVelocity = handRigidbody.angularVelocity; } HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject); @@ -853,7 +861,11 @@ namespace Passer.Humanoid { //grabbedRigidbody.centerOfMass = handTarget.storedCOM; if (grabbedRigidbody.isKinematic == false) { +#if UNITY_6000_0_OR_NEWER + grabbedRigidbody.linearVelocity = handRigidbody.linearVelocity; +#else grabbedRigidbody.velocity = handRigidbody.velocity; +#endif grabbedRigidbody.angularVelocity = handRigidbody.angularVelocity; } diff --git a/Runtime/HumanoidControl/Scripts/Movements/HandMovements.cs b/Runtime/HumanoidControl/Scripts/Movements/HandMovements.cs index 8c795ca..7174c44 100644 --- a/Runtime/HumanoidControl/Scripts/Movements/HandMovements.cs +++ b/Runtime/HumanoidControl/Scripts/Movements/HandMovements.cs @@ -53,8 +53,13 @@ namespace Passer.Humanoid { handTarget.handRigidbody = handTarget.hand.bone.transform.gameObject.AddComponent(); } handTarget.handRigidbody.mass = 1; +#if UNITY_2017_1_OR_NEWER + handTarget.handRigidbody.linearDamping = 0; + handTarget.handRigidbody.angularDamping = 10; +#else handTarget.handRigidbody.drag = 0; handTarget.handRigidbody.angularDrag = 10; +#endif handTarget.handRigidbody.useGravity = false; handTarget.handRigidbody.isKinematic = true; handTarget.handRigidbody.interpolation = RigidbodyInterpolation.None; diff --git a/Runtime/HumanoidControl/Scripts/Networking/HumanoidNetworking.cs b/Runtime/HumanoidControl/Scripts/Networking/HumanoidNetworking.cs index 3159404..e0cb7db 100644 --- a/Runtime/HumanoidControl/Scripts/Networking/HumanoidNetworking.cs +++ b/Runtime/HumanoidControl/Scripts/Networking/HumanoidNetworking.cs @@ -1718,7 +1718,11 @@ namespace Passer.Humanoid { public static List FindLocalHumanoids() { List humanoidList = new List(); +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsOfType(); +#endif for (int i = 0; i < foundHumanoids.Length; i++) { if (!foundHumanoids[i].isRemote) { humanoidList.Add(foundHumanoids[i]); @@ -1728,7 +1732,11 @@ namespace Passer.Humanoid { } public static IHumanoidNetworking GetLocalHumanoidNetworking() { +#if UNITY_6000_0_OR_NEWER + HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsOfType(); +#endif foreach (IHumanoidNetworking humanoidNetworking in humanoidNetworkings) { if (humanoidNetworking.isLocal) return humanoidNetworking; diff --git a/Runtime/HumanoidControl/Scripts/Networking/NetworkingStatusUI.cs b/Runtime/HumanoidControl/Scripts/Networking/NetworkingStatusUI.cs index b452e44..a5f1a6f 100644 --- a/Runtime/HumanoidControl/Scripts/Networking/NetworkingStatusUI.cs +++ b/Runtime/HumanoidControl/Scripts/Networking/NetworkingStatusUI.cs @@ -6,18 +6,19 @@ namespace Passer { protected NetworkingStarter networkingStarter; protected UnityEngine.UI.Text textcomponent; - void Start() { + protected void Start() { +#if UNITY_6000_0_OR_NEWER + networkingStarter = Object.FindAnyObjectByType(); +#else networkingStarter = FindObjectOfType(); +#endif textcomponent = GetComponent(); } - void Update() { + protected void Update() { #if hNW_UNET || hNW_PHOTON if (networkingStarter == null) return; - - //if (textcomponent != null) -// textcomponent.text = networkingStarter.networkingStatus.ToString(); #endif } } diff --git a/Runtime/HumanoidControl/Scripts/Physics/HandPhysics.cs b/Runtime/HumanoidControl/Scripts/Physics/HandPhysics.cs index 9194e02..18e9efd 100644 --- a/Runtime/HumanoidControl/Scripts/Physics/HandPhysics.cs +++ b/Runtime/HumanoidControl/Scripts/Physics/HandPhysics.cs @@ -227,7 +227,11 @@ namespace Passer.Humanoid { //Compensate for absolute rigidbody speed (specifically when on a moving platform) if (handRigidbody != null) { +#if UNITY_6000_0_OR_NEWER + Vector3 residualVelocity = handRigidbody.linearVelocity - velocityTowardsTarget; +#else Vector3 residualVelocity = handRigidbody.velocity - velocityTowardsTarget; +#endif damper += residualVelocity * 10; } } @@ -552,7 +556,11 @@ namespace Passer.Humanoid { Vector3 velocityTarget = (positionDelta * velocityMagic) * Time.fixedDeltaTime; if (float.IsNaN(velocityTarget.x) == false) +#if UNITY_6000_0_OR_NEWER + handRigidbody.linearVelocity = Vector3.MoveTowards(handRigidbody.linearVelocity, velocityTarget, MaxVelocityChange); +#else handRigidbody.velocity = Vector3.MoveTowards(handRigidbody.velocity, velocityTarget, MaxVelocityChange); +#endif rotationDelta.ToAngleAxis(out angle, out axis); diff --git a/Runtime/HumanoidControl/Scripts/Physics/RigidbodyData.cs b/Runtime/HumanoidControl/Scripts/Physics/RigidbodyData.cs index ea0d94f..b870927 100644 --- a/Runtime/HumanoidControl/Scripts/Physics/RigidbodyData.cs +++ b/Runtime/HumanoidControl/Scripts/Physics/RigidbodyData.cs @@ -15,8 +15,13 @@ namespace Passer { public RigidbodyData(Rigidbody rb) { mass = rb.mass; +#if UNITY_6000_0_OR_NEWER + drag = rb.linearDamping; + angularDrag = rb.angularDamping; +#else drag = rb.drag; angularDrag = rb.angularDrag; +#endif useGravity = rb.useGravity; isKinematic = rb.isKinematic; interpolation = rb.interpolation; @@ -28,8 +33,13 @@ namespace Passer { public void CopyToRigidbody(Rigidbody rb) { rb.mass = mass; +#if UNITY_6000_0_OR_NEWER + rb.linearDamping = drag; + rb.angularDamping = angularDrag; +#else rb.drag = drag; rb.angularDrag = angularDrag; +#endif rb.useGravity = useGravity; rb.isKinematic = isKinematic; rb.interpolation = interpolation; diff --git a/Runtime/HumanoidControl/Scripts/Targets/FootTarget.cs b/Runtime/HumanoidControl/Scripts/Targets/FootTarget.cs index 391c836..0ff7cc7 100644 --- a/Runtime/HumanoidControl/Scripts/Targets/FootTarget.cs +++ b/Runtime/HumanoidControl/Scripts/Targets/FootTarget.cs @@ -649,7 +649,11 @@ namespace Passer.Humanoid { private HumanoidControl GetHumanoid() { // This does not work for prefabs +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif for (int i = 0; i < humanoids.Length; i++) { if ((humanoids[i].leftFootTarget != null && humanoids[i].leftFootTarget.transform == this.transform) || @@ -829,7 +833,7 @@ namespace Passer.Humanoid { toes.MatchTargetToAvatar(); } - #endregion +#endregion #region Update diff --git a/Runtime/HumanoidControl/Scripts/Targets/HandTarget.cs b/Runtime/HumanoidControl/Scripts/Targets/HandTarget.cs index c74a3f6..2d9c888 100644 --- a/Runtime/HumanoidControl/Scripts/Targets/HandTarget.cs +++ b/Runtime/HumanoidControl/Scripts/Targets/HandTarget.cs @@ -1163,7 +1163,11 @@ namespace Passer.Humanoid { private HumanoidControl GetHumanoid() { // This does not work for prefabs +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif for (int i = 0; i < humanoids.Length; i++) { if ((humanoids[i].leftHandTarget != null && humanoids[i].leftHandTarget.transform == this.transform) || @@ -1195,8 +1199,13 @@ namespace Passer.Humanoid { handRigidbody = hand.bone.transform.gameObject.AddComponent(); } handRigidbody.mass = 1; +#if UNITY_6000_0_OR_NEWER + handRigidbody.linearDamping = 0; + handRigidbody.angularDamping = 10; +#else handRigidbody.drag = 0; handRigidbody.angularDrag = 10; +#endif handRigidbody.useGravity = false; handRigidbody.isKinematic = true; handRigidbody.interpolation = RigidbodyInterpolation.None; diff --git a/Runtime/HumanoidControl/Scripts/Targets/HeadTarget.cs b/Runtime/HumanoidControl/Scripts/Targets/HeadTarget.cs index 6958ff6..6f75bb4 100644 --- a/Runtime/HumanoidControl/Scripts/Targets/HeadTarget.cs +++ b/Runtime/HumanoidControl/Scripts/Targets/HeadTarget.cs @@ -750,7 +750,11 @@ namespace Passer.Humanoid { private HumanoidControl GetHumanoid() { // This does not work for prefabs +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif for (int i = 0; i < humanoids.Length; i++) { if (humanoids[i].headTarget != null && humanoids[i].headTarget.transform == this.transform) @@ -876,7 +880,7 @@ namespace Passer.Humanoid { #endif } - #endregion +#endregion #region Update @@ -1218,15 +1222,6 @@ namespace Passer.Humanoid { } } - public void DisableVR() { - UnityEngine.XR.XRSettings.LoadDeviceByName("None"); - } - - public void EnableVR() { - // Just oculus for now - UnityEngine.XR.XRSettings.LoadDeviceByName("Oculus"); - } - #endregion } } \ No newline at end of file diff --git a/Runtime/HumanoidControl/Scripts/Targets/HipsTarget.cs b/Runtime/HumanoidControl/Scripts/Targets/HipsTarget.cs index 9df45f2..cd84e8d 100644 --- a/Runtime/HumanoidControl/Scripts/Targets/HipsTarget.cs +++ b/Runtime/HumanoidControl/Scripts/Targets/HipsTarget.cs @@ -461,7 +461,11 @@ namespace Passer.Humanoid { private HumanoidControl GetHumanoid() { // This does not work for prefabs +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif for (int i = 0; i < humanoids.Length; i++) { if (humanoids[i].hipsTarget != null && humanoids[i].hipsTarget.transform == this.transform) @@ -615,7 +619,7 @@ namespace Passer.Humanoid { } - #endregion +#endregion #region Update diff --git a/Runtime/HumanoidControl/Scripts/Tools/MenuManager.cs b/Runtime/HumanoidControl/Scripts/Tools/MenuManager.cs index 2ee8a5a..19d1779 100644 --- a/Runtime/HumanoidControl/Scripts/Tools/MenuManager.cs +++ b/Runtime/HumanoidControl/Scripts/Tools/MenuManager.cs @@ -51,7 +51,11 @@ namespace Passer { /// /// The found humanoid, null if no local humanoid has been found protected HumanoidControl FindHumanoid() { +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif for (int i = 0; i < humanoids.Length; i++) { if (humanoids[i].isRemote == false) return humanoids[i]; diff --git a/Runtime/HumanoidControl/Scripts/Tools/Redrop.cs b/Runtime/HumanoidControl/Scripts/Tools/Redrop.cs index 43eb647..36097cb 100644 --- a/Runtime/HumanoidControl/Scripts/Tools/Redrop.cs +++ b/Runtime/HumanoidControl/Scripts/Tools/Redrop.cs @@ -12,18 +12,18 @@ namespace Passer { private Vector3 startPosition; private Quaternion startRotation; - void Start() { + protected void Start() { startPosition = transform.position; startRotation = transform.rotation; } - void Update() { + protected void Update() { if (groundCollider == null && transform.position.y < 0) { MoveToStart(); } } - private void OnCollisionEnter(Collision collision) { + protected void OnCollisionEnter(Collision collision) { if (collision.collider == groundCollider) { MoveToStart(); } @@ -34,7 +34,11 @@ namespace Passer { if (thisRigidbody != null) { thisRigidbody.MovePosition(new Vector3(startPosition.x, startPosition.y + 0.1F, startPosition.z)); thisRigidbody.MoveRotation(startRotation); +#if UNITY_6000_0_OR_NEWER + thisRigidbody.linearVelocity = Vector3.zero; +#else thisRigidbody.velocity = Vector3.zero; +#endif thisRigidbody.angularVelocity = Vector3.zero; } } diff --git a/Runtime/Sites/Scripts/HandInterface.cs b/Runtime/Sites/Scripts/HandInterface.cs index 5bacddb..7982fcb 100644 --- a/Runtime/Sites/Scripts/HandInterface.cs +++ b/Runtime/Sites/Scripts/HandInterface.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; namespace Passer.Humanoid { @@ -9,8 +7,12 @@ namespace Passer.Humanoid { protected HandTarget handTarget; protected void Start() { +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); - if (humanoids.Length != 1) +#endif + if (humanoids.Length != 1) return; handTarget = isLeft ? humanoids[0].leftHandTarget : humanoids[0].rightHandTarget; diff --git a/Runtime/Sites/Scripts/HumanoidInterface.cs b/Runtime/Sites/Scripts/HumanoidInterface.cs index e96a771..fd4d8e2 100644 --- a/Runtime/Sites/Scripts/HumanoidInterface.cs +++ b/Runtime/Sites/Scripts/HumanoidInterface.cs @@ -29,7 +29,11 @@ namespace Passer.Humanoid { private void Awake() { HumanoidControl humanoidInScene = GetComponentInParent(); if (humanoidInScene == null) { +#if UNITY_6000_0_OR_NEWER + HumanoidControl[] humanoids = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidControl[] humanoids = FindObjectsOfType(); +#endif foreach (HumanoidControl humanoid in humanoids) { if (humanoid.isRemote == false) this.humanoid = humanoid; @@ -197,7 +201,7 @@ namespace Passer.Humanoid { SiteNavigator siteNavigator = humanoid.GetComponentInChildren(); siteNavigator.GoBack(); } -#endif +#endif } } \ No newline at end of file diff --git a/Runtime/Sites/Scripts/MouseCursor.cs b/Runtime/Sites/Scripts/MouseCursor.cs index ff104d8..6e3958e 100644 --- a/Runtime/Sites/Scripts/MouseCursor.cs +++ b/Runtime/Sites/Scripts/MouseCursor.cs @@ -21,7 +21,11 @@ namespace Passer { } private void OnSceneLoad(Scene scene, LoadSceneMode mode) { +#if UNITY_6000_0_OR_NEWER + Canvas[] canvases = FindObjectsByType(FindObjectsSortMode.None); +#else Canvas[] canvases = FindObjectsOfType(); +#endif foreach (Canvas canvas in canvases) canvas.worldCamera = Camera.main; } diff --git a/Runtime/Sites/Scripts/Site.cs b/Runtime/Sites/Scripts/Site.cs index 3a116c0..f2fde69 100644 --- a/Runtime/Sites/Scripts/Site.cs +++ b/Runtime/Sites/Scripts/Site.cs @@ -43,7 +43,11 @@ namespace Passer { #if UNITY_EDITOR UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad; +#if UNITY_6000_0_OR_NEWER + HumanoidControl humanoid = FindAnyObjectByType(); +#else HumanoidControl humanoid = FindObjectOfType(); +#endif if (humanoid == null) { string visitorScenePath = HumanoidPreferences.visitorSceneName; if (!string.IsNullOrEmpty(visitorScenePath)) { @@ -57,17 +61,29 @@ namespace Passer { private void OnSceneLoad(Scene _, LoadSceneMode _1) { #if UNITY_EDITOR +#if UNITY_6000_0_OR_NEWER + SiteNavigator[] siteNavigators = FindObjectsByType(FindObjectsSortMode.None); +#else SiteNavigator[] siteNavigators = FindObjectsOfType(); +#endif foreach (SiteNavigator siteNavigator in siteNavigators) { siteNavigator.startScene = null; siteNavigator.startSite = null; } +#if UNITY_6000_0_OR_NEWER + HumanoidControl pawn = FindAnyObjectByType(); +#else HumanoidControl pawn = FindObjectOfType(); +#endif if (pawn == null) return; +#if UNITY_6000_0_OR_NEWER + HumanoidSpawnPoint[] spawnPoints = FindObjectsByType(FindObjectsSortMode.None); +#else HumanoidSpawnPoint[] spawnPoints = FindObjectsOfType(); +#endif foreach (HumanoidSpawnPoint spawnPoint in spawnPoints) { if (spawnPoint.isFree) pawn.transform.position = spawnPoint.transform.position; diff --git a/Runtime/Sites/Scripts/StartScene.cs b/Runtime/Sites/Scripts/StartScene.cs index 7e691f2..23791b1 100644 --- a/Runtime/Sites/Scripts/StartScene.cs +++ b/Runtime/Sites/Scripts/StartScene.cs @@ -16,8 +16,12 @@ namespace Passer { UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad; +#if UNITY_6000_0_OR_NEWER + HumanoidControl pawn = FindAnyObjectByType(); +#else HumanoidControl pawn = FindObjectOfType(); - if (pawn == null) { +#endif + if (pawn == null) { UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName); } DontDestroyOnLoad(this.gameObject); @@ -26,8 +30,12 @@ namespace Passer { private void OnSceneLoad(UnityEngine.SceneManagement.Scene _, LoadSceneMode _1) { #if UNITY_EDITOR +#if UNITY_6000_0_OR_NEWER + SiteNavigator siteNavigator = FindAnyObjectByType(); +#else SiteNavigator siteNavigator = FindObjectOfType(); - if (siteNavigator != null) { +#endif + if (siteNavigator != null) { siteNavigator.startScene = thisSceneName; } #endif diff --git a/Runtime/Tools/Physics/HybridPhysics.cs b/Runtime/Tools/Physics/HybridPhysics.cs index 951b60c..9d8f7e2 100644 --- a/Runtime/Tools/Physics/HybridPhysics.cs +++ b/Runtime/Tools/Physics/HybridPhysics.cs @@ -229,7 +229,11 @@ namespace Passer { damper = -velocityTowardsTarget * damping; //Compensate for absolute rigidbody speed (specifically when on a moving platform) +#if UNITY_6000_0_OR_NEWER + Vector3 residualVelocity = thisRigidbody.linearVelocity - velocityTowardsTarget; +#else Vector3 residualVelocity = thisRigidbody.velocity - velocityTowardsTarget; +#endif damper += residualVelocity * 10; } lastDistanceToTarget = distanceToTarget; diff --git a/Runtime/Tools/Physics/RigidbodyDisabled.cs b/Runtime/Tools/Physics/RigidbodyDisabled.cs index cacab60..31d3fe2 100644 --- a/Runtime/Tools/Physics/RigidbodyDisabled.cs +++ b/Runtime/Tools/Physics/RigidbodyDisabled.cs @@ -30,8 +30,13 @@ namespace Passer { public void CopyFromRigidbody(Rigidbody rb) { mass = rb.mass; +#if UNITY_6000_0_OR_NEWER + drag = rb.linearDamping; + angularDrag = rb.angularDamping; +#else drag = rb.drag; angularDrag = rb.angularDrag; +#endif useGravity = rb.useGravity; isKinematic = rb.isKinematic; interpolation = rb.interpolation; @@ -44,8 +49,13 @@ namespace Passer { public void CopyToRigidbody(Rigidbody rb) { rb.mass = mass; +#if UNITY_6000_0_OR_NEWER + rb.linearDamping = drag; + rb.angularDamping = angularDrag; +#else rb.drag = drag; rb.angularDrag = angularDrag; +#endif rb.useGravity = useGravity; rb.isKinematic = isKinematic; rb.interpolation = interpolation; diff --git a/Runtime/Tools/Scripts/HumanoidSpawnPoint.cs b/Runtime/Tools/Scripts/HumanoidSpawnPoint.cs index 6aa64fe..73d1ca9 100644 --- a/Runtime/Tools/Scripts/HumanoidSpawnPoint.cs +++ b/Runtime/Tools/Scripts/HumanoidSpawnPoint.cs @@ -46,13 +46,17 @@ namespace Passer.Humanoid { } } - private void Awake() { + protected void Awake() { +#if UNITY_6000_0_OR_NEWER + HumanoidControl humanoid = Object.FindAnyObjectByType(); +#else HumanoidControl humanoid = FindObjectOfType(); +#endif if (humanoid == null) return; - Vector3 humanoidXZ = new Vector3(humanoid.transform.position.x, 0, humanoid.transform.position.z); - Vector3 thisXZ = new Vector3(this.transform.position.x, 0, this.transform.position.z); + Vector3 humanoidXZ = new(humanoid.transform.position.x, 0, humanoid.transform.position.z); + Vector3 thisXZ = new(this.transform.position.x, 0, this.transform.position.z); float distance = Vector3.Distance(humanoidXZ, thisXZ); if (distance < radius || isFree) humanoid.transform.MoveTo(this.transform.position); @@ -103,6 +107,6 @@ namespace Passer.Humanoid { Gizmos.DrawLine(pos, lastPos); } - #endregion + #endregion } } diff --git a/Runtime/Tools/Scripts/InteractionModule.cs b/Runtime/Tools/Scripts/InteractionModule.cs index e081cd8..2a2b696 100644 --- a/Runtime/Tools/Scripts/InteractionModule.cs +++ b/Runtime/Tools/Scripts/InteractionModule.cs @@ -256,7 +256,11 @@ namespace Passer { if (pointers == null) pointers = new InteractionPointer[maxInteractions]; // 0 = left index, 1 = right index, 2 = head, 3 = controller +#if UNITY_6000_0_OR_NEWER + EventSystem eventSystem = FindAnyObjectByType(); +#else EventSystem eventSystem = GameObject.FindObjectOfType(); +#endif if (eventSystem == null) eventSystem = humanoid.gameObject.AddComponent(); @@ -346,7 +350,7 @@ namespace Passer { pointer.ProcessTouch(); } - #endregion +#endregion public Vector3 GetFocusPoint(int inputDeviceID) { return pointers[inputDeviceID].focusPosition; diff --git a/Runtime/Tools/Scripts/InteractionPointer.cs b/Runtime/Tools/Scripts/InteractionPointer.cs index 361ab4f..2551b9f 100644 --- a/Runtime/Tools/Scripts/InteractionPointer.cs +++ b/Runtime/Tools/Scripts/InteractionPointer.cs @@ -224,7 +224,11 @@ namespace Passer { protected virtual void Awake() { Transform rootTransform = this.transform.root; +#if UNITY_6000_0_OR_NEWER + interactionModule = FindAnyObjectByType(); +#else interactionModule = FindObjectOfType(); +#endif if (interactionModule == null) interactionModule = CreateInteractionModule(); EventSystem eventSystem = interactionModule.GetComponent(); @@ -585,7 +589,11 @@ namespace Passer { if (rayType != RayType.Gravity) return; +#if UNITY_6000_0_OR_NEWER + rigidbody.linearVelocity = transform.forward * speed; +#else rigidbody.velocity = transform.forward * speed; +#endif } public void LaunchPrefab(GameObject prefab) { diff --git a/Runtime/Tools/Scripts/Socket.cs b/Runtime/Tools/Scripts/Socket.cs index 8fc4ee0..52e7bdf 100644 --- a/Runtime/Tools/Scripts/Socket.cs +++ b/Runtime/Tools/Scripts/Socket.cs @@ -694,7 +694,11 @@ namespace Passer { Humanoid.HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject); if (thisRigidbody != null) { +#if UNITY_6000_0_OR_NEWER + objRigidbody.linearVelocity = thisRigidbody.linearVelocity; +#else objRigidbody.velocity = thisRigidbody.velocity; +#endif objRigidbody.angularVelocity = thisRigidbody.angularVelocity; } @@ -761,7 +765,7 @@ namespace Passer { } } - #endregion Rigidbody +#endregion Rigidbody #region Static Object @@ -807,7 +811,7 @@ namespace Passer { #endregion Static Object - #endregion Release +#endregion Release #region Start diff --git a/Runtime/Tools/Scripts/Spawner.cs b/Runtime/Tools/Scripts/Spawner.cs index 9805afe..d64cbe2 100644 --- a/Runtime/Tools/Scripts/Spawner.cs +++ b/Runtime/Tools/Scripts/Spawner.cs @@ -54,7 +54,11 @@ namespace Passer { if (spawnPoints != null && spawnPoints.Length > 0) return; +#if UNITY_6000_0_OR_NEWER + spawnPoints = FindObjectsByType(FindObjectsSortMode.None); +#else spawnPoints = FindObjectsOfType(); +#endif if (spawnPoints.Length == 0) { SpawnPoint thisSpawnPoint = this.gameObject.AddComponent(); spawnPoints = new SpawnPoint[] { thisSpawnPoint }; diff --git a/Runtime/Visitors/Scripts/UI/SiteDetailsUI.cs b/Runtime/Visitors/Scripts/UI/SiteDetailsUI.cs index e48bed0..0f5f025 100644 --- a/Runtime/Visitors/Scripts/UI/SiteDetailsUI.cs +++ b/Runtime/Visitors/Scripts/UI/SiteDetailsUI.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; using UnityEngine.UI; namespace Passer { @@ -18,7 +16,7 @@ namespace Passer { this.site = site; } - private void OnEnable() { + protected void OnEnable() { if (site == null) return; @@ -28,7 +26,11 @@ namespace Passer { } private void GoToSite() { +#if UNITY_6000_0_OR_NEWER + SiteNavigator siteNavigator = FindAnyObjectByType(); +#else SiteNavigator siteNavigator = FindObjectOfType(); +#endif if (siteNavigator == null) { Debug.LogError("Could not find a site navigator"); return; diff --git a/Runtime/Visitors/Scripts/UI/SitesUI.cs b/Runtime/Visitors/Scripts/UI/SitesUI.cs index c57cec7..3d85ab0 100644 --- a/Runtime/Visitors/Scripts/UI/SitesUI.cs +++ b/Runtime/Visitors/Scripts/UI/SitesUI.cs @@ -150,7 +150,11 @@ namespace Passer { } protected void ShowSite(VisitorSites.Site site, int position) { +#if UNITY_6000_0_OR_NEWER + SiteNavigator siteNavigator = FindAnyObjectByType(); +#else SiteNavigator siteNavigator = FindObjectOfType(); +#endif if (siteNavigator == null) Debug.LogError("Could not find a site navigator"); @@ -210,7 +214,7 @@ namespace Passer { } - #endregion +#endregion public void AddSite(string siteName, string siteLocation) { //Debug.Log("Add site " + siteName); @@ -233,7 +237,11 @@ namespace Passer { } private void GoToSite(VisitorSites.Site site) { +#if UNITY_6000_0_OR_NEWER + SiteNavigator siteNavigator = FindAnyObjectByType(); +#else SiteNavigator siteNavigator = FindObjectOfType(); +#endif if (siteNavigator == null) { Debug.LogError("Could not find a site navigator"); return; diff --git a/Runtime/Visitors/Scripts/VisitorPossessions.cs b/Runtime/Visitors/Scripts/VisitorPossessions.cs index 7b2cf30..4caeadc 100644 --- a/Runtime/Visitors/Scripts/VisitorPossessions.cs +++ b/Runtime/Visitors/Scripts/VisitorPossessions.cs @@ -406,7 +406,11 @@ namespace Passer { if (avatarIndex < 0 || avatarIndex > avatars.Count) return; +#if UNITY_6000_0_OR_NEWER + HumanoidControl humanoid = FindAnyObjectByType(); +#else HumanoidControl humanoid = FindObjectOfType(); +#endif if (humanoid == null) return; @@ -420,7 +424,11 @@ namespace Passer { } private static IEnumerator RetrieveAvatarAsync(Possession possession) { +#if UNITY_6000_0_OR_NEWER + HumanoidControl humanoid = FindAnyObjectByType(); +#else HumanoidControl humanoid = FindObjectOfType(); +#endif if (humanoid == null) yield break;