docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class NetworkVariableBaseInitializesWhenPersisted.PrefabInstanceHandler

    Creates a specified number of instances that persist throughout the entire test session and will only be destroyed/released during the OneTimeTeardown

    Inheritance
    object
    NetworkVariableBaseInitializesWhenPersisted.PrefabInstanceHandler
    Implements
    INetworkPrefabInstanceHandler
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Unity.Netcode.RuntimeTests
    Assembly: Unity.Netcode.RuntimeTests.dll
    Syntax
    public class NetworkVariableBaseInitializesWhenPersisted.PrefabInstanceHandler : INetworkPrefabInstanceHandler

    Constructors

    PrefabInstanceHandler(GameObject)

    Declaration
    public PrefabInstanceHandler(GameObject gameObject)
    Parameters
    Type Name Description
    GameObject gameObject

    Fields

    PrefabInstances

    Declaration
    public Queue<GameObject> PrefabInstances
    Field Value
    Type Description
    Queue<GameObject>

    Methods

    AssignHandler(NetworkManager)

    Invoke when NetworkManagers are created but not started.

    Declaration
    public static void AssignHandler(NetworkManager networkManager)
    Parameters
    Type Name Description
    NetworkManager networkManager

    The NetworkManager instance to assign a handler to. Must not be null and must not already have a handler assigned.

    CleanInstances()

    When we are done with all tests, we finally destroy the persisted objects

    Declaration
    public void CleanInstances()

    DeregisterHandler()

    Declaration
    public void DeregisterHandler()

    Destroy(NetworkObject)

    Invoked on Client and Server Once an implementation is registered with the NetworkPrefabHandler, this method will be called when a Network Prefab associated NetworkObject is:

    Server Side: destroyed or despawned with the destroy parameter equal to true If Despawn(bool) is invoked with the default destroy parameter (i.e. false) then this method will NOT be invoked!

    Client Side: destroyed when the client receives a destroy object message from the server or host.

    Note on Pooling: When this method is invoked, you do not need to destroy the NetworkObject as long as you want your pool to persist. The most common approach is to make the NetworkObject inactive by calling SetActive(bool).

    Declaration
    public void Destroy(NetworkObject networkObject)
    Parameters
    Type Name Description
    NetworkObject networkObject

    The NetworkObject being destroyed

    GetInstance()

    Declaration
    public NetworkObject GetInstance()
    Returns
    Type Description
    NetworkObject

    GetInstanceToSpawn(NetworkManager)

    Declaration
    public static NetworkObject GetInstanceToSpawn(NetworkManager networkManager)
    Parameters
    Type Name Description
    NetworkManager networkManager
    Returns
    Type Description
    NetworkObject

    Initialize(NetworkManager)

    Declaration
    public void Initialize(NetworkManager networkManager)
    Parameters
    Type Name Description
    NetworkManager networkManager

    Instantiate(ulong, Vector3, Quaternion)

    Client Side Only Once an implementation is registered with the NetworkPrefabHandler, this method will be called every time a Network Prefab associated NetworkObject is spawned on clients

    Note On Hosts: Use the RegisterHostGlobalObjectIdHashValues(GameObject, List<GameObject>) method to register all targeted NetworkPrefab overrides manually since the host will be acting as both a server and client.

    Note on Pooling: If you are using a NetworkObject pool, don't forget to make the NetworkObject active via the SetActive(bool) method.

    Declaration
    public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaternion rotation)
    Parameters
    Type Name Description
    ulong ownerClientId

    the owner for the NetworkObject to be instantiated

    Vector3 position

    the initial/default position for the NetworkObject to be instantiated

    Quaternion rotation

    the initial/default rotation for the NetworkObject to be instantiated

    Returns
    Type Description
    NetworkObject

    The instantiated NetworkObject instance. Returns null if instantiation fails.

    OneTimeSetup(int, GameObject)

    Declaration
    public static void OneTimeSetup(int numberOfInstances, GameObject prefabInstance)
    Parameters
    Type Name Description
    int numberOfInstances
    GameObject prefabInstance

    ReleaseAll(bool)

    Releases back to the queue and if destroy is true it will completely remove all references so they are cleaned up when

    Declaration
    public static void ReleaseAll(bool destroy = false)
    Parameters
    Type Name Description
    bool destroy

    If true, completely removes all references and cleans up instances. If false, returns handlers to the queue for reuse.

    ValidateInstanceSpawnCount(int)

    Declaration
    public bool ValidateInstanceSpawnCount(int minCount)
    Parameters
    Type Name Description
    int minCount
    Returns
    Type Description
    bool

    ValidatePersistedInstances(NetworkManager, int)

    Validates that a NetworkManager has the minimum required number of persisted instances.

    Declaration
    public static bool ValidatePersistedInstances(NetworkManager networkManager, int minCount)
    Parameters
    Type Name Description
    NetworkManager networkManager

    The NetworkManager instance to validate. Must not be null.

    int minCount

    The minimum number of instances that should exist. Must be greater than or equal to zero.

    Returns
    Type Description
    bool

    True if the NetworkManager has at least the minimum required instances, false otherwise or if the NetworkManager is not registered.

    Implements

    INetworkPrefabInstanceHandler
    In This Article
    Back to top
    Copyright © 2025 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)