docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class NetworkTransform

    A component for syncing transforms. NetworkTransform will read the underlying transform and replicate it to clients. The replicated value will be automatically be interpolated (if active) and applied to the underlying GameObject's transform.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    NetworkBehaviour
    NetworkTransform
    ChildObjectComponent
    NetworkTransformTestComponent
    TransformInterpolationObject
    Inherited Members
    NetworkBehaviour.NetworkManager
    NetworkBehaviour.IsLocalPlayer
    NetworkBehaviour.IsOwner
    NetworkBehaviour.IsServer
    NetworkBehaviour.IsClient
    NetworkBehaviour.IsHost
    NetworkBehaviour.IsOwnedByServer
    NetworkBehaviour.IsSpawned
    NetworkBehaviour.NetworkObject
    NetworkBehaviour.HasNetworkObject
    NetworkBehaviour.NetworkObjectId
    NetworkBehaviour.NetworkBehaviourId
    NetworkBehaviour.GetNetworkBehaviour(ushort)
    NetworkBehaviour.OwnerClientId
    NetworkBehaviour.GetNetworkObject(ulong)
    NetworkBehaviour.m_TargetIdBeingSynchronized
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetType()
    object.MemberwiseClone()
    Namespace: Unity.Netcode.Components
    Assembly: solution.dll
    Syntax
    [DisallowMultipleComponent]
    [AddComponentMenu("Netcode/Network Transform")]
    [DefaultExecutionOrder(100000)]
    public class NetworkTransform : NetworkBehaviour

    Fields

    Name Description
    InLocalSpace

    Sets whether the transform should be treated as local (true) or world (false) space.

    Interpolate

    When enabled (default) interpolation is applied. When disabled interpolation is disabled.

    OnClientRequestChange

    The handler that gets invoked when server receives a change from a client. This handler would be useful for server to modify pos/rot/scale before applying client's request.

    PositionThreshold

    The position threshold value that triggers a delta state update by the authoritative instance.

    PositionThresholdDefault

    The default position change threshold value. Any changes above this threshold will be replicated.

    RotAngleThreshold

    The rotation threshold value that triggers a delta state update by the authoritative instance.

    RotAngleThresholdDefault

    The default rotation angle change threshold value. Any changes above this threshold will be replicated.

    ScaleThreshold

    The scale threshold value that triggers a delta state update by the authoritative instance.

    ScaleThresholdDefault

    The default scale change threshold value. Any changes above this threshold will be replicated.

    SlerpPosition

    When true and interpolation is enabled, this will Slerp to the target position.

    SyncPositionX

    When enabled (default), the x component of position will be synchronized by authority.

    SyncPositionY

    When enabled (default), the y component of position will be synchronized by authority.

    SyncPositionZ

    When enabled (default), the z component of position will be synchronized by authority.

    SyncRotAngleX

    When enabled (default), the x component of rotation will be synchronized by authority.

    SyncRotAngleY

    When enabled (default), the y component of rotation will be synchronized by authority.

    SyncRotAngleZ

    When enabled (default), the z component of rotation will be synchronized by authority.

    SyncScaleX

    When enabled (default), the x component of scale will be synchronized by authority.

    SyncScaleY

    When enabled (default), the y component of scale will be synchronized by authority.

    SyncScaleZ

    When enabled (default), the z component of scale will be synchronized by authority.

    UseHalfFloatPrecision

    Enable this to use half float precision for position, rotation, and scale. When enabled, delta position synchronization is used.

    UseQuaternionCompression

    Enabled this on the authority side for quaternion compression

    UseQuaternionSynchronization

    Enable this on the authority side for quaternion synchronization

    m_CachedIsServer

    Internally used by NetworkTransform to keep track of whether this NetworkBehaviour derived class instance was instantiated on the server side or not.

    m_CachedNetworkManager

    Internally used by NetworkTransform to keep track of the NetworkManager instance assigned to this this NetworkBehaviour derived class instance.

    Properties

    Name Description
    CanCommitToTransform

    Used to determine who can write to this transform. Server only for this transform. Changing this value alone in a child implementation will not allow you to create a NetworkTransform which can be written to by clients. See the ClientNetworkTransform Sample in the package samples for how to implement a NetworkTransform with client write support. If using different values, please use RPCs to write to the server. Netcode doesn't support client side network variable writing

    Methods

    Name Description
    Awake()

    Create interpolators when first instantiated to avoid memory allocations if the associated NetworkObject persists (i.e. despawned but not destroyed or pools)

    GetScale(bool)

    Helper method that returns the scale of the transform.

    GetSpaceRelativePosition(bool)

    Helper method that returns the space relative position of the transform.

    GetSpaceRelativeRotation(bool)

    Helper method that returns the space relative rotation of the transform.

    Initialize()

    Initializes NetworkTransform when spawned and ownership changes.

    IsServerAuthoritative()

    Method to determine if this NetworkTransform instance is owner or server authoritative.

    OnAuthorityPushTransformState(ref NetworkTransformState)

    Invoked just prior to being pushed to non-authority instances.

    OnDestroy()

    Invoked when the GameObject the NetworkBehaviour is attached to. NOTE: If you override this, you will want to always invoke this base class version of this OnDestroy() method!!

    OnGainedOwnership()

    Gets called when the local client gains ownership of this object

    OnInitialize(ref NetworkTransformState)

    Invoked when first spawned and when ownership changes.

    OnInitialize(ref NetworkVariable<NetworkTransformState>)

    This method is only invoked by the owner Use: OnInitialize(ref NetworkTransformState replicatedState) to be notified on all instances

    OnIsServerAuthoritative()

    Override this method and return false to switch to owner authoritative mode

    OnLostOwnership()

    Gets called when we loose ownership of this object

    OnNetworkDespawn()

    Gets called when the NetworkObject gets despawned. Is called both on the server and clients.

    OnNetworkObjectParentChanged(NetworkObject)

    Gets called when the parent NetworkObject of this NetworkBehaviour's NetworkObject has changed

    OnNetworkSpawn()

    Gets called when the NetworkObject gets spawned, message handlers are ready to be registered and the network is setup.

    OnNetworkTransformStateUpdated(ref NetworkTransformState, ref NetworkTransformState)

    Invoked on the non-authoritative side when the NetworkTransformState has been updated

    OnOwnershipChanged(ulong, ulong)

    Invoked on all clients, override this method to be notified of any ownership changes (even if the instance was niether the previous or newly assigned current owner).

    OnSynchronize<T>(ref BufferSerializer<T>)

    This is invoked when a new client joins (server and client sides) Server Side: Serializes as if we were teleporting (everything is sent via NetworkTransformState) Client Side: Adds the interpolated state which applies the NetworkTransformState as well

    SetMaxInterpolationBound(float)

    Will set the maximum interpolation boundary for the interpolators of this NetworkTransform instance. This value roughly translates to the maximum value of 't' in Lerp(Vector3, Vector3, float) and Lerp(Quaternion, Quaternion, float) for all transform elements being monitored by NetworkTransform (i.e. Position, Scale, and Rotation)

    SetState(Vector3?, Quaternion?, Vector3?, bool)

    Directly sets a state on the authoritative transform. Owner clients can directly set the state on a server authoritative transform This will override any changes made previously to the transform This isn't resistant to network jitter. Server side changes due to this method won't be interpolated. The parameters are broken up into pos / rot / scale on purpose so that the caller can perturb just the desired one(s)

    Teleport(Vector3, Quaternion, Vector3)

    Teleport the transform to the given values without interpolating

    TryCommitTransformToServer(Transform, double)

    This will try to send/commit the current transform delta states (if any)

    Update()
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)