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,