diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs index 555ed20113..13423f4629 100644 --- a/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs +++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs @@ -136,8 +136,7 @@ protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) /// /// We are using post spawn to handle any final spawn initializations. - /// At this point we know all NetworkBehaviours on this instance has - /// been spawned. + /// At this point we know all NetworkBehaviours on this instance have been spawned. /// protected override void OnNetworkPostSpawn() { @@ -173,8 +172,7 @@ public override void OnNetworkDespawn() { m_CharacterController.enabled = false; Camera.main.transform.SetParent(null, false); - Camera.main.transform.position = m_CameraOriginalPosition; - Camera.main.transform.rotation = m_CameraOriginalRotation; + Camera.main.transform.SetPositionAndRotation(m_CameraOriginalPosition, m_CameraOriginalRotation); } base.OnNetworkDespawn(); } diff --git a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/MoverScriptNoRigidbody.cs b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/MoverScriptNoRigidbody.cs index 5cc3865bfd..6da9441570 100644 --- a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/MoverScriptNoRigidbody.cs +++ b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/MoverScriptNoRigidbody.cs @@ -5,7 +5,7 @@ using Random = UnityEngine.Random; using Debug = UnityEngine.Debug; -#region MoverScriptNoRigidbody Custom Editor +#region MoverScriptNoRigidbody Custom Editor #if UNITY_EDITOR using Unity.Netcode.Editor; using UnityEditor; @@ -144,8 +144,7 @@ protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) /// /// We are using post spawn to handle any final spawn initializations. - /// At this point we know all NetworkBehaviours on this instance has - /// been spawned. + /// At this point we know all NetworkBehaviours on this instance have been spawned. /// protected override void OnNetworkPostSpawn() { @@ -182,14 +181,13 @@ protected override void OnNetworkPostSpawn() public override void OnNetworkDespawn() { - // Notify any client or server specific componant that this instance has despawned. + // Notify any client or server specific component that this instance has despawned. NotifySpawnStatusChanged?.Invoke(false); if (IsLocalPlayer) { m_CharacterController.enabled = false; Camera.main.transform.SetParent(null, false); - Camera.main.transform.position = m_CameraOriginalPosition; - Camera.main.transform.rotation = m_CameraOriginalRotation; + Camera.main.transform.SetPositionAndRotation(m_CameraOriginalPosition, m_CameraOriginalRotation); } base.OnNetworkDespawn(); } diff --git a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkManagerBootstrapper.cs b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkManagerBootstrapper.cs index da858b14ef..172d819c27 100644 --- a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkManagerBootstrapper.cs +++ b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkManagerBootstrapper.cs @@ -415,8 +415,7 @@ private void SetCameraDefaults() if (Camera.main != null && Camera.main.transform.parent != null) { Camera.main.transform.SetParent(null, false); - Camera.main.transform.position = m_CameraOriginalPosition; - Camera.main.transform.rotation = m_CameraOriginalRotation; + Camera.main.transform.SetPositionAndRotation(m_CameraOriginalPosition, m_CameraOriginalRotation); } } @@ -522,7 +521,7 @@ private void StartDedicatedServer() /// /// Register callbacks when the OnServerStarted callback is invoked. - /// This makes it easier to know you are registering for events only + /// This makes it easier to know you are registering for events only /// when the server successfully has started. /// private void ServerStarted() @@ -578,11 +577,11 @@ private void HandleEditorKeyCommands() #else private void HandleConsoleKeyCommands() { - if (Console.KeyAvailable) + if (Console.KeyAvailable) { var networkManager = NetworkManager.Singleton; var keyPressed = Console.ReadKey(true); - switch(keyPressed.Key) + switch(keyPressed.Key) { case ConsoleKey.X: { diff --git a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkPrefabOverrideHandler.cs b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkPrefabOverrideHandler.cs index 9bba90b13a..0784033889 100644 --- a/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkPrefabOverrideHandler.cs +++ b/Examples/OverridingScenesAndPrefabs/Assets/Scripts/NetworkPrefabOverrideHandler.cs @@ -45,8 +45,7 @@ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaterni var gameObject = m_NetworkManager.IsClient ? Instantiate(NetworkPrefabOverride) : Instantiate(NetworkPrefab); // You could integrate spawn locations here and on the server side apply the spawn position at // this stage of the spawn process. - gameObject.transform.position = position; - gameObject.transform.rotation = rotation; + gameObject.transform.SetPositionAndRotation(position, rotation); return gameObject.GetComponent(); } @@ -64,4 +63,3 @@ public void Destroy(NetworkObject networkObject) Destroy(networkObject.gameObject); } } - diff --git a/com.unity.netcode.gameobjects/CHANGELOG.md b/com.unity.netcode.gameobjects/CHANGELOG.md index d1f9893832..a69827ede5 100644 --- a/com.unity.netcode.gameobjects/CHANGELOG.md +++ b/com.unity.netcode.gameobjects/CHANGELOG.md @@ -25,6 +25,7 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Fixed +- Made a variety of small performance improvements. (#3683) ### Security diff --git a/com.unity.netcode.gameobjects/Documentation~/basics/object-spawning.md b/com.unity.netcode.gameobjects/Documentation~/basics/object-spawning.md index d9b7bff794..56202b919f 100644 --- a/com.unity.netcode.gameobjects/Documentation~/basics/object-spawning.md +++ b/com.unity.netcode.gameobjects/Documentation~/basics/object-spawning.md @@ -153,8 +153,7 @@ This type of dynamically spawned `NetworkObject` typically is a simple wrapper c m_prefabInstance = Instantiate(prefabToSpawn); // Optional, this example applies the spawner's position and rotation to the new instance - m_prefabInstance.transform.position = transform.position; - m_prefabInstance.transform.rotation = transform.rotation; + m_prefabInstance.transform.SetPositionAndRotation(transform.position, transform.rotation); // Get the instance's NetworkObject and Spawn m_SpawnedNetworkObject = m_prefabInstance.GetComponent(); @@ -233,8 +232,7 @@ public class SinglePooledDynamicSpawner : NetworkBehaviour, INetworkprefabInstan public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaternion rotation) { m_prefabInstance.SetActive(true); - m_prefabInstance.transform.position = transform.position; - m_prefabInstance.transform.rotation = transform.rotation; + m_prefabInstance.transform.position.SetPositionAndRotation(transform.position, transform.rotation); return m_SpawnedNetworkObject; } diff --git a/com.unity.netcode.gameobjects/Editor/CodeGen/NetworkBehaviourILPP.cs b/com.unity.netcode.gameobjects/Editor/CodeGen/NetworkBehaviourILPP.cs index 894aaf76d5..5396087381 100644 --- a/com.unity.netcode.gameobjects/Editor/CodeGen/NetworkBehaviourILPP.cs +++ b/com.unity.netcode.gameobjects/Editor/CodeGen/NetworkBehaviourILPP.cs @@ -1431,11 +1431,7 @@ private void ProcessNetworkBehaviour(TypeDefinition typeDefinition, string[] ass MethodReference callMethod = rpcHandler; if (typeDefinition.HasGenericParameters) { - var genericTypes = new List(); - foreach (var parameter in typeDefinition.GenericParameters) - { - genericTypes.Add(parameter); - } + var genericTypes = new List(typeDefinition.GenericParameters); callMethod = callMethod.MakeGeneric(genericTypes.ToArray()); } @@ -3101,11 +3097,7 @@ private MethodDefinition GenerateStaticHandler(MethodDefinition methodDefinition var callMethod = (MethodReference)methodDefinition; if (castType.HasGenericParameters) { - var genericTypes = new List(); - foreach (var parameter in castType.GenericParameters) - { - genericTypes.Add(parameter); - } + var genericTypes = new List(castType.GenericParameters); castType = castType.MakeGenericInstanceType(genericTypes.ToArray()); callMethod = callMethod.MakeGeneric(genericTypes.ToArray()); } diff --git a/com.unity.netcode.gameobjects/Editor/Configuration/NetcodeForGameObjectsProjectSettings.cs b/com.unity.netcode.gameobjects/Editor/Configuration/NetcodeForGameObjectsProjectSettings.cs index 52bd0ef011..48ddd77fde 100644 --- a/com.unity.netcode.gameobjects/Editor/Configuration/NetcodeForGameObjectsProjectSettings.cs +++ b/com.unity.netcode.gameobjects/Editor/Configuration/NetcodeForGameObjectsProjectSettings.cs @@ -22,7 +22,7 @@ public class NetcodeForGameObjectsProjectSettings : ScriptableSingleton @@ -129,7 +127,7 @@ public override void OnInspectorGUI() overrideIp = EditorGUILayout.TextField("Override Bind IP (optional)", overrideIp); if (allowRemoteConnections) { - if (overrideIp == "") + if (overrideIp.Length == 0) { if (isIpV6) { diff --git a/com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs index 8ba4128b07..a72c9482e8 100644 --- a/com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs +++ b/com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs @@ -251,12 +251,12 @@ private void DisplayNetworkManagerProperties() // Default directory var directory = "Assets/"; var assetPath = AssetDatabase.GetAssetPath(m_NetworkManager); - if (assetPath == "") + if (assetPath.Length == 0) { assetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(m_NetworkManager); } - if (assetPath != "") + if (assetPath.Length > 0) { directory = Path.GetDirectoryName(assetPath); } @@ -270,7 +270,7 @@ private void DisplayNetworkManagerProperties() if (prefabStage != null) { var prefabPath = prefabStage.assetPath; - if (!string.IsNullOrEmpty(prefabPath)) + if (prefabPath.Length > 0) { directory = Path.GetDirectoryName(prefabPath); } diff --git a/com.unity.netcode.gameobjects/Runtime/Components/AnticipatedNetworkTransform.cs b/com.unity.netcode.gameobjects/Runtime/Components/AnticipatedNetworkTransform.cs index d2b22c75a1..9f0545fc6c 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/AnticipatedNetworkTransform.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/AnticipatedNetworkTransform.cs @@ -240,8 +240,7 @@ public void AnticipateState(TransformState newState) return; } var transform_ = transform; - transform_.position = newState.Position; - transform_.rotation = newState.Rotation; + transform_.SetPositionAndRotation(newState.Position, newState.Rotation); transform_.localScale = newState.Scale; m_AnticipatedTransform = newState; if (CanCommitToTransform) @@ -278,9 +277,8 @@ private void ProcessSmoothing() m_PreviousAnticipatedTransform = m_AnticipatedTransform; if (!CanCommitToTransform) { - transform_.position = m_AnticipatedTransform.Position; + transform_.SetPositionAndRotation(m_AnticipatedTransform.Position, m_AnticipatedTransform.Rotation); transform_.localScale = m_AnticipatedTransform.Scale; - transform_.rotation = m_AnticipatedTransform.Rotation; } } } @@ -336,8 +334,7 @@ public void SetupForRender() Transform.m_AnticipatedTransform = Transform.m_AuthoritativeTransform; } - transform_.position = Transform.m_AnticipatedTransform.Position; - transform_.rotation = Transform.m_AnticipatedTransform.Rotation; + transform_.SetPositionAndRotation(Transform.m_AnticipatedTransform.Position, Transform.m_AnticipatedTransform.Rotation); transform_.localScale = Transform.m_AnticipatedTransform.Scale; } } @@ -347,8 +344,7 @@ public void SetupForUpdate() if (Transform.CanCommitToTransform) { var transform_ = Transform.transform; - transform_.position = Transform.m_AuthoritativeTransform.Position; - transform_.rotation = Transform.m_AuthoritativeTransform.Rotation; + transform_.SetPositionAndRotation(Transform.m_AuthoritativeTransform.Position, Transform.m_AuthoritativeTransform.Rotation); transform_.localScale = Transform.m_AuthoritativeTransform.Scale; } } @@ -493,8 +489,7 @@ public void Smooth(TransformState from, TransformState to, float durationSeconds { m_AnticipatedTransform = to; m_PreviousAnticipatedTransform = m_AnticipatedTransform; - transform_.position = to.Position; - transform_.rotation = to.Rotation; + transform_.SetPositionAndRotation(to.Position, to.Rotation); transform_.localScale = to.Scale; m_SmoothDuration = 0; m_CurrentSmoothTime = 0; @@ -505,8 +500,7 @@ public void Smooth(TransformState from, TransformState to, float durationSeconds if (!CanCommitToTransform) { - transform_.position = from.Position; - transform_.rotation = from.Rotation; + transform_.SetPositionAndRotation(from.Position, from.Rotation); transform_.localScale = from.Scale; } @@ -554,18 +548,16 @@ protected override void OnTransformUpdated() if (!m_OutstandingAuthorityChange) { // Keep the anticipated value unchanged, we have no updates from the server at all. - transform_.position = previousAnticipatedTransform.Position; + transform_.SetPositionAndRotation(previousAnticipatedTransform.Position, previousAnticipatedTransform.Rotation); transform_.localScale = previousAnticipatedTransform.Scale; - transform_.rotation = previousAnticipatedTransform.Rotation; return; } if (StaleDataHandling == StaleDataHandling.Ignore && m_LastAnticipaionCounter > m_LastAuthorityUpdateCounter) { // Keep the anticipated value unchanged because it is more recent than the authoritative one. - transform_.position = previousAnticipatedTransform.Position; + transform_.SetPositionAndRotation(previousAnticipatedTransform.Position, previousAnticipatedTransform.Rotation); transform_.localScale = previousAnticipatedTransform.Scale; - transform_.rotation = previousAnticipatedTransform.Rotation; return; } diff --git a/com.unity.netcode.gameobjects/Runtime/Components/Helpers/AttachableBehaviour.cs b/com.unity.netcode.gameobjects/Runtime/Components/Helpers/AttachableBehaviour.cs index 0d1a85d516..14c72673a3 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/Helpers/AttachableBehaviour.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/Helpers/AttachableBehaviour.cs @@ -463,8 +463,7 @@ internal void InternalDetach() { // Set the original parent and origianl local position and rotation transform.SetParent(m_DefaultParent.transform, false); - transform.localPosition = m_OriginalLocalPosition; - transform.localRotation = m_OriginalLocalRotation; + transform.SetLocalPositionAndRotation(m_OriginalLocalPosition, m_OriginalLocalRotation); } m_AttachState = AttachState.Detached; } diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkTransform.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkTransform.cs index 33fd4c523d..47ea011abe 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkTransform.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkTransform.cs @@ -181,7 +181,7 @@ public bool HasPositionChange { get { - return HasPositionX | HasPositionY | HasPositionZ; + return HasPositionX || HasPositionY || HasPositionZ; } } @@ -241,7 +241,7 @@ public bool HasRotAngleChange { get { - return HasRotAngleX | HasRotAngleY | HasRotAngleZ; + return HasRotAngleX || HasRotAngleY || HasRotAngleZ; } } @@ -301,7 +301,7 @@ public bool HasScaleChange { get { - return HasScaleX | HasScaleY | HasScaleZ; + return HasScaleX || HasScaleY || HasScaleZ; } } @@ -3950,8 +3950,7 @@ private void SetStateInternal(Vector3 pos, Quaternion rot, Vector3 scale, bool s { if (InLocalSpace) { - transform.localPosition = pos; - transform.localRotation = rot; + transform.SetLocalPositionAndRotation(pos, rot); } else { @@ -4539,8 +4538,8 @@ private void UpdateTransformState() // - If UsUnrealiable is not enabled // - If teleporting or synchronizing // - If sending an UnrealiableFrameSync or synchronizing the base position of the NetworkDeltaPosition - var networkDelivery = !UseUnreliableDeltas | m_LocalAuthoritativeNetworkState.IsTeleportingNextFrame | m_LocalAuthoritativeNetworkState.IsSynchronizing - | m_LocalAuthoritativeNetworkState.UnreliableFrameSync | m_LocalAuthoritativeNetworkState.SynchronizeBaseHalfFloat + var networkDelivery = !UseUnreliableDeltas || m_LocalAuthoritativeNetworkState.IsTeleportingNextFrame || m_LocalAuthoritativeNetworkState.IsSynchronizing + || m_LocalAuthoritativeNetworkState.UnreliableFrameSync || m_LocalAuthoritativeNetworkState.SynchronizeBaseHalfFloat ? NetworkDelivery.ReliableSequenced : NetworkDelivery.UnreliableSequenced; // Server-host-dahost always sends updates to all clients (but itself) diff --git a/com.unity.netcode.gameobjects/Runtime/Configuration/NetworkPrefabs.cs b/com.unity.netcode.gameobjects/Runtime/Configuration/NetworkPrefabs.cs index 6e801f5b61..77b30700b7 100644 --- a/com.unity.netcode.gameobjects/Runtime/Configuration/NetworkPrefabs.cs +++ b/com.unity.netcode.gameobjects/Runtime/Configuration/NetworkPrefabs.cs @@ -109,10 +109,7 @@ public void Initialize(bool warnInvalid = true) { foreach (var list in NetworkPrefabsLists) { - foreach (var networkPrefab in list.PrefabList) - { - prefabs.Add(networkPrefab); - } + prefabs.AddRange(list.PrefabList); } } @@ -154,7 +151,7 @@ public void Initialize(bool warnInvalid = true) if (NetworkLog.CurrentLogLevel <= LogLevel.Error) { var sb = new StringBuilder("Removing invalid prefabs from Network Prefab registration: "); - sb.Append(string.Join(", ", removeList)); + sb.AppendJoin(", ", removeList); NetworkLog.LogWarning(sb.ToString()); } } diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs index 090b63f60a..9282578f5a 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs @@ -364,7 +364,7 @@ internal bool HasParentNetworkObject(Transform transform) /// /// Useful to know if we should or should not send a message /// - internal bool HasRemoteObservers => !(Observers.Count() == 0 || (Observers.Contains(NetworkManager.LocalClientId) && Observers.Count() == 1)); + internal bool HasRemoteObservers => !(Observers.Count == 0 || (Observers.Contains(NetworkManager.LocalClientId) && Observers.Count == 1)); /// /// Distributed Authority Mode Only @@ -1085,7 +1085,7 @@ internal void SendOwnershipStatusUpdate() } else { - changeOwnership.ClientIdCount = Observers.Count(); + changeOwnership.ClientIdCount = Observers.Count; changeOwnership.ClientIds = Observers.ToArray(); NetworkManager.ConnectionManager.SendMessage(ref changeOwnership, NetworkDelivery.Reliable, NetworkManager.ServerClientId); } diff --git a/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ParentSyncMessage.cs b/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ParentSyncMessage.cs index c2965d4b31..7b4739369d 100644 --- a/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ParentSyncMessage.cs +++ b/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/ParentSyncMessage.cs @@ -130,13 +130,11 @@ public void Handle(ref NetworkContext context) // the values of the server-side post-parenting transform values if (!WorldPositionStays) { - networkObject.transform.localPosition = Position; - networkObject.transform.localRotation = Rotation; + networkObject.transform.SetLocalPositionAndRotation(Position, Rotation); } else { - networkObject.transform.position = Position; - networkObject.transform.rotation = Rotation; + networkObject.transform.SetPositionAndRotation(Position, Rotation); } networkObject.transform.localScale = Scale; } diff --git a/com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs b/com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs index af5025404b..5cba446a1e 100644 --- a/com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs +++ b/com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs @@ -789,8 +789,7 @@ internal NetworkObject InstantiateAndSpawnNoParameterChecks(NetworkObject networ return null; } networkObject.IsPlayerObject = isPlayerObject; - networkObject.transform.position = position; - networkObject.transform.rotation = rotation; + networkObject.transform.SetPositionAndRotation(position, rotation); // If spawning as a player, then invoke SpawnAsPlayerObject if (isPlayerObject) { @@ -885,8 +884,7 @@ internal NetworkObject GetNetworkObjectToSpawn(uint globalObjectIdHash, ulong ow internal NetworkObject InstantiateNetworkPrefab(GameObject networkPrefab, uint prefabGlobalObjectIdHash, Vector3? position, Quaternion? rotation) { var networkObject = UnityEngine.Object.Instantiate(networkPrefab).GetComponent(); - networkObject.transform.position = position ?? networkObject.transform.position; - networkObject.transform.rotation = rotation ?? networkObject.transform.rotation; + networkObject.transform.SetPositionAndRotation(position ?? networkObject.transform.position, rotation ?? networkObject.transform.rotation); networkObject.NetworkManagerOwner = NetworkManager; networkObject.PrefabGlobalObjectIdHash = prefabGlobalObjectIdHash; return networkObject; @@ -980,13 +978,11 @@ internal NetworkObject CreateLocalNetworkObject(NetworkObject.SceneObject sceneO // then we want to apply the position and rotation values world space relative if ((worldPositionStays && !nonNetworkObjectParent) || !networkObject.AutoObjectParentSync) { - networkObject.transform.position = position; - networkObject.transform.rotation = rotation; + networkObject.transform.SetPositionAndRotation(position, rotation); } else { - networkObject.transform.localPosition = position; - networkObject.transform.localRotation = rotation; + networkObject.transform.SetLocalPositionAndRotation(position, rotation); } // SPECIAL CASE: diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/HelpUrlTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/HelpUrlTests.cs index 4d3a6d608f..97e98f28f6 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/HelpUrlTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/HelpUrlTests.cs @@ -21,7 +21,9 @@ internal class HelpUrlTests private bool m_VerboseLogging = false; + // IOS platform can't run this test for some reason. [UnityTest] + [UnityPlatform(exclude = new[] { RuntimePlatform.IPhonePlayer })] public IEnumerator ValidateUrlsAreValid() { var names = new List(); diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs index 1c80fc61c5..22f9bc3a21 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs @@ -53,8 +53,7 @@ protected override void OnServerAndClientsCreated() rigidBody.detectCollisions = false; rigidBody.position = Vector3.zero; rigidBody.rotation = Quaternion.identity; - rigidBody.transform.position = Vector3.zero; - rigidBody.transform.rotation = Quaternion.identity; + rigidBody.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); // NOTE: We don't use a sphere collider for this integration test because by the time we can // assure they don't collide and skew the results the NetworkObjects are already synchronized // with skewed results @@ -77,8 +76,7 @@ protected override void OnServerAndClientsCreated() rigidBody.detectCollisions = false; rigidBody.position = Vector3.zero; rigidBody.rotation = Quaternion.identity; - rigidBody.transform.position = Vector3.zero; - rigidBody.transform.rotation = Quaternion.identity; + rigidBody.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); // NOTE: We don't use a sphere collider for this integration test because by the time we can // assure they don't collide and skew the results the NetworkObjects are already synchronized // with skewed results @@ -302,8 +300,7 @@ void LogOwnerRigidBody(int stage) } else { - ownerInstance.transform.position = valueSetByOwner; - ownerInstance.transform.rotation = rotation; + ownerInstance.transform.SetPositionAndRotation(valueSetByOwner, rotation); ownerInstance.transform.localScale = valueSetByOwner; } @@ -392,8 +389,7 @@ void LogOwnerRigidBody(int stage) else { m_UseAdjustedVariance = false; - ownerInstance.transform.position = valueSetByOwner; - ownerInstance.transform.rotation = rotation; + ownerInstance.transform.SetPositionAndRotation(valueSetByOwner, rotation); } LogOwnerRigidBody(3); diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableCollectionsTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableCollectionsTests.cs index 85d283df3c..224b82cf32 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableCollectionsTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableCollectionsTests.cs @@ -726,7 +726,7 @@ private IEnumerator ValidateClients(NetworkManager clientBeingTested, bool initi if (initialize) { - clientsInitialized.Add(client.LocalClientId, ownerInitialized & serverInitialized); + clientsInitialized.Add(client.LocalClientId, ownerInitialized && serverInitialized); } } diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/PlayerObjectTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/PlayerObjectTests.cs index e011d94c8a..a3207c5a3c 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/PlayerObjectTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/PlayerObjectTests.cs @@ -141,8 +141,7 @@ protected override void OnCreatePlayerPrefab() var playerNetworkObject = m_PlayerPrefab.GetComponent(); m_PlayerPosition = GetRandomVector3(-10.0f, 10.0f); m_PlayerRotation = Quaternion.Euler(GetRandomVector3(-180.0f, 180.0f)); - playerNetworkObject.transform.position = m_PlayerPosition; - playerNetworkObject.transform.rotation = m_PlayerRotation; + playerNetworkObject.transform.SetPositionAndRotation(m_PlayerPosition, m_PlayerRotation); base.OnCreatePlayerPrefab(); } diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/Prefabs/NetworkPrefabHandlerTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/Prefabs/NetworkPrefabHandlerTests.cs index 7460ea65fc..34b98001ca 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/Prefabs/NetworkPrefabHandlerTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/Prefabs/NetworkPrefabHandlerTests.cs @@ -225,8 +225,7 @@ internal class NetworkPrefaInstanceHandler : INetworkPrefabInstanceHandler public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaternion rotation) { var networkObjectInstance = UnityEngine.Object.Instantiate(m_NetworkObject.gameObject).GetComponent(); - networkObjectInstance.transform.position = position; - networkObjectInstance.transform.rotation = rotation; + networkObjectInstance.transform.SetPositionAndRotation(position, rotation); m_Instances.Add(networkObjectInstance); return networkObjectInstance; } diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/Transports/UnityTransportConnectionTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/Transports/UnityTransportConnectionTests.cs index d94e7ef0b9..47e9d610df 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/Transports/UnityTransportConnectionTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/Transports/UnityTransportConnectionTests.cs @@ -5,7 +5,9 @@ using NUnit.Framework; using Unity.Netcode.TestHelpers.Runtime; using Unity.Netcode.Transports.UTP; +#if HOSTNAME_RESOLUTION_AVAILABLE using Unity.Networking.Transport; +#endif using UnityEngine; using UnityEngine.TestTools; using static Unity.Netcode.RuntimeTests.UnityTransportTestHelpers; diff --git a/testproject/Assets/AddressableAssetsData/Windows.meta b/testproject/Assets/AddressableAssetsData/Windows.meta deleted file mode 100644 index 24d59b91eb..0000000000 --- a/testproject/Assets/AddressableAssetsData/Windows.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: acf26035dc7bf2f4f9dce266b9d3f2fc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs index f065a214c3..1879a4612d 100644 --- a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs +++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs @@ -71,8 +71,7 @@ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaterni { var gameObject = GetNextSpawnObject(); gameObject.SetActive(true); - gameObject.transform.position = position; - gameObject.transform.rotation = rotation; + gameObject.transform.SetPositionAndRotation(position, rotation); return gameObject.GetComponent(); } diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs index 8dcc706559..0a3dcee572 100644 --- a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs +++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs @@ -128,8 +128,7 @@ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaterni { var gameObject = GetNextSpawnObject(); gameObject.SetActive(true); - gameObject.transform.position = position; - gameObject.transform.rotation = rotation; + gameObject.transform.SetPositionAndRotation(position, rotation); return gameObject.GetComponent(); } @@ -180,4 +179,3 @@ private IEnumerator SpawnObjects() } } } - diff --git a/testproject/Assets/Tests/Manual/DeltaPositionNetworkTransform/LinearMotionHandler.cs b/testproject/Assets/Tests/Manual/DeltaPositionNetworkTransform/LinearMotionHandler.cs index 542de6d6de..d9b1567093 100644 --- a/testproject/Assets/Tests/Manual/DeltaPositionNetworkTransform/LinearMotionHandler.cs +++ b/testproject/Assets/Tests/Manual/DeltaPositionNetworkTransform/LinearMotionHandler.cs @@ -396,8 +396,8 @@ private void LateUpdate() SetNextDirection(); } - ClientPositionVisual.transform.position = m_ClientPosition; - ClientPositionVisual.transform.rotation = InLocalSpace ? transform.localRotation : transform.rotation; + var rotation = InLocalSpace ? transform.localRotation : transform.rotation; + ClientPositionVisual.transform.SetPositionAndRotation(m_ClientPosition, rotation); } private Vector3 m_ServerPosition; diff --git a/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/ChildObjectScript.cs b/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/ChildObjectScript.cs index e3413a4ec1..decc21ab13 100644 --- a/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/ChildObjectScript.cs +++ b/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/ChildObjectScript.cs @@ -65,10 +65,9 @@ public override void OnNetworkObjectParentChanged(NetworkObject parentNetworkObj { // This preserves the original position offset of the object when parented with // WorldPositionStays set to false. - transform.localPosition = m_OriginalLocalPosition; + transform.SetLocalPositionAndRotation(m_OriginalLocalPosition, m_OriginalLocalRotation); - // Optionally, you can also make other modifications to rotation or scale - transform.localRotation = m_OriginalLocalRotation; + // Optionally, you can also make other modifications to scale transform.localScale = m_OriginalLocalScale; } else if (parentNetworkObject == null && m_LastParent) diff --git a/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/InSceneParentChildHandler.cs b/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/InSceneParentChildHandler.cs index 61d6f53b1f..2acd84bf43 100644 --- a/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/InSceneParentChildHandler.cs +++ b/testproject/Assets/Tests/Manual/InSceneObjectParentingTests/InSceneParentChildHandler.cs @@ -231,8 +231,8 @@ public override void OnNetworkObjectParentChanged(NetworkObject parentNetworkObj m_TargetLocalRotation = GenerateVector3(RotationMin, RotationMax); var scale = Random.Range(ScaleMin, ScaleMax); m_TargetLocalScale = Vector3.one * scale; - transform.position = m_TargetLocalPosition; - transform.rotation = Quaternion.Euler(m_TargetLocalRotation); + + transform.SetPositionAndRotation(m_TargetLocalPosition, Quaternion.Euler(m_TargetLocalRotation)); transform.localScale = m_TargetLocalScale; base.OnNetworkObjectParentChanged(parentNetworkObject); diff --git a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs index 3035cfcfc0..cd8a832954 100644 --- a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs +++ b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs @@ -612,8 +612,7 @@ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaterni var obj = GetObject(); if (obj != null) { - obj.transform.position = position; - obj.transform.rotation = rotation; + obj.transform.SetPositionAndRotation(position, rotation); return obj.GetComponent(); } return null; diff --git a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPoolAdditive.cs b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPoolAdditive.cs index ea2dfc2416..f714d937de 100644 --- a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPoolAdditive.cs +++ b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPoolAdditive.cs @@ -432,8 +432,7 @@ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaterni var obj = GetObject(); if (obj != null) { - obj.transform.position = position; - obj.transform.rotation = rotation; + obj.transform.SetPositionAndRotation(position, rotation); return obj.GetComponent(); } return null; diff --git a/testproject/Packages/manifest.json b/testproject/Packages/manifest.json index 093b170b97..1895c93dcc 100644 --- a/testproject/Packages/manifest.json +++ b/testproject/Packages/manifest.json @@ -14,7 +14,6 @@ "com.unity.test-framework": "1.4.6", "com.unity.test-framework.performance": "3.0.3", "com.unity.timeline": "1.8.7", - "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10", "com.unity.ugui": "2.0.0", "com.unity.modules.accessibility": "1.0.0", "com.unity.modules.ai": "1.0.0", diff --git a/testproject/Packages/packages-lock.json b/testproject/Packages/packages-lock.json index 4788651e18..dd5f6204a3 100644 --- a/testproject/Packages/packages-lock.json +++ b/testproject/Packages/packages-lock.json @@ -154,22 +154,6 @@ }, "url": "https://packages.unity.com" }, - "com.unity.sysroot": { - "version": "2.0.10", - "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.sysroot.linux-x86_64": { - "version": "2.0.9", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.sysroot": "2.0.10" - }, - "url": "https://packages.unity.com" - }, "com.unity.test-framework": { "version": "1.4.6", "depth": 0, @@ -203,16 +187,6 @@ }, "url": "https://packages.unity.com" }, - "com.unity.toolchain.win-x86_64-linux-x86_64": { - "version": "2.0.10", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.sysroot": "2.0.10", - "com.unity.sysroot.linux-x86_64": "2.0.9" - }, - "url": "https://packages.unity.com" - }, "com.unity.transport": { "version": "2.4.0", "depth": 1,