Class NetworkList<T>
Event based NetworkVariable container for syncing Lists
Implements
Inherited Members
Namespace: Unity.Netcode
Assembly: Unity.Netcode.Runtime.dll
Syntax
[GenerateSerializationForGenericParameter(0)]
public class NetworkList<T> : NetworkVariableBase, IDisposable where T : unmanaged, IEquatable<T>
Type Parameters
| Name | Description |
|---|---|
| T | The type for the list |
Constructors
NetworkList()
Constructor method for NetworkList<T>
Declaration
public NetworkList()
NetworkList(IEnumerable<T>, NetworkVariableReadPermission, NetworkVariableWritePermission)
Event based NetworkVariable container for syncing Lists
Declaration
public NetworkList(IEnumerable<T> values = null, NetworkVariableReadPermission readPerm = NetworkVariableReadPermission.Everyone, NetworkVariableWritePermission writePerm = NetworkVariableWritePermission.Server)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | values | An optional collection of initial values to populate the list. If null, the list will start empty. |
| NetworkVariableReadPermission | readPerm | The read permission level for the network list. Determines who can read the list (e.g., server-only or everyone). Default is defined by DefaultReadPerm |
| NetworkVariableWritePermission | writePerm | The write permission level for the network list. Determines who can modify the list (e.g., server-only or specific clients). Default is defined by DefaultWritePerm. |
Properties
Count
Gets the number of elements contained in the NetworkList<T>.
Declaration
public int Count { get; }
Property Value
| Type | Description |
|---|---|
| int |
this[int]
Gets or sets the element at the specified index in the NetworkList<T>.
Declaration
public T this[int index] { get; set; }
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The zero-based index of the element to get or set. |
Property Value
| Type | Description |
|---|---|
| T | The element at the specified index. |
Remarks
This method checks for write permissions before setting the value.
LastModifiedTick
This method should not be used. It is left over from a previous interface
Declaration
public int LastModifiedTick { get; }
Property Value
| Type | Description |
|---|---|
| int |
Methods
Add(T)
Adds an item to the end of the NetworkList<T>.
Declaration
public void Add(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The item to be added to the list. |
Remarks
This method checks for write permissions before adding the item.
AsNativeArray()
Gets a zero‑allocation, NativeArray_1 view over the current elements of this NetworkList<T>.
Declaration
public NativeArray<T>.ReadOnly AsNativeArray()
Returns
| Type | Description |
|---|---|
| NativeArray<T>.ReadOnly | A NativeArray_1 reference that shares the same backing memory as this list. |
Remarks
The returned array stays valid only until the list is mutated (add, remove, clear, resize) or Dispose() is called on the container. Continuing to use the array after it is invalid will result in undefined behaviour; callers are responsible for ensuring a safe lifetime.
Clear()
Removes all items from the NetworkList<T>.
Declaration
public void Clear()
Remarks
This method checks for write permissions before clearing the list.
Contains(T)
Determines whether the NetworkList<T> contains a specific value.
Declaration
public bool Contains(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The object to locate in the NetworkList<T>. |
Returns
| Type | Description |
|---|---|
| bool | true if the item is found in the NetworkList<T>; otherwise, false. |
Dispose()
Overridden IDisposable implementation. CAUTION: If you derive from this class and override the Dispose() method, you must always invoke the base.Dispose() method!
Declaration
public override void Dispose()
Overrides
~NetworkList()
Finalizer that ensures proper cleanup of network list resources
Declaration
protected ~NetworkList()
GetEnumerator()
Returns an enumerator that iterates through the NetworkList<T>.
Declaration
public IEnumerator<T> GetEnumerator()
Returns
| Type | Description |
|---|---|
| IEnumerator<T> | An enumerator for the NetworkList<T>. |
IndexOf(T)
Determines the index of a specific item in the NetworkList<T>.
Declaration
public int IndexOf(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The object to remove from the list. |
Returns
| Type | Description |
|---|---|
| int | The index of the item if found in the list; otherwise, -1. |
Insert(int, T)
Inserts item to the NetworkList<T> at the specified index.
Declaration
public void Insert(int index, T item)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The index at which the item should be inserted. |
| T | item | The item to insert. |
Remarks
This method checks for write permissions before inserting the item.
IsDirty()
Gets Whether or not the container is dirty
Declaration
public override bool IsDirty()
Returns
| Type | Description |
|---|---|
| bool | Whether or not the container is dirty |
Overrides
ReadDelta(FastBufferReader, bool)
Reads value from the reader and applies it
Declaration
public override void ReadDelta(FastBufferReader reader, bool keepDirtyDelta)
Parameters
| Type | Name | Description |
|---|---|---|
| FastBufferReader | reader | The stream to read the value from |
| bool | keepDirtyDelta | Whether or not the container should keep the dirty delta, or mark the delta as consumed |
Overrides
ReadField(FastBufferReader)
Reads the complete state from the reader and applies it
Declaration
public override void ReadField(FastBufferReader reader)
Parameters
| Type | Name | Description |
|---|---|---|
| FastBufferReader | reader | The stream to read the state from |
Overrides
Remove(T)
Removes the first occurrence of a specific object from the NetworkList.
Declaration
public bool Remove(T item)
Parameters
| Type | Name | Description |
|---|---|---|
| T | item | The object to remove from the list. |
Returns
| Type | Description |
|---|---|
| bool | true if the item was successfully removed from the list; otherwise, false. |
Remarks
This method checks for write permissions before removing the item.
RemoveAt(int)
Removes the NetworkList<T> item at the specified index.
Declaration
public void RemoveAt(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The index of the element to remove. |
Remarks
This method checks for write permissions before removing the item.
ResetDirty()
Resets the dirty state and marks the variable as synced / clean
Declaration
public override void ResetDirty()
Overrides
Set(int, T, bool)
Sets the element at the specified index in the NetworkList<T>.
Declaration
public void Set(int index, T value, bool forceUpdate = false)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The zero-based index of the element to set. |
| T | value | The new value to set at the given index |
| bool | forceUpdate | Ignores the equality check when setting the value. This option can send unnecessary updates to all clients when the value hasn't changed. |
Remarks
This method checks for write permissions and equality before setting and updating the value.
WriteDelta(FastBufferWriter)
Writes the variable to the writer
Declaration
public override void WriteDelta(FastBufferWriter writer)
Parameters
| Type | Name | Description |
|---|---|---|
| FastBufferWriter | writer | The stream to write the value to |
Overrides
WriteField(FastBufferWriter)
Writes the complete state of the variable to the writer
Declaration
public override void WriteField(FastBufferWriter writer)
Parameters
| Type | Name | Description |
|---|---|---|
| FastBufferWriter | writer | The stream to write the state to |
Overrides
Events
OnListChanged
Creates A NetworkList/>
Declaration
public event NetworkList<T>.OnListChangedDelegate OnListChanged
Event Type
| Type | Description |
|---|---|
| NetworkList<T>.OnListChangedDelegate |