Photon Fusion 2.0.0

Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
NetworkArray< T > Struct Template Reference

Fusion type for networking arrays. Maximum capacity is fixed, and is set with the CapacityAttribute.

More...

Inherits IEnumerable< T >, and INetworkArray.

Classes

struct  Enumerator
 Enumerator for NetworkArray. More...
 

Public Member Functions

void Clear ()
 Clears the array, setting all values to default.
 
void CopyFrom (List< T > source, int sourceOffset, int sourceCount)
 Copies a range of values from a supplied source list into the NetworkArray.
 
void CopyFrom (T[] source, int sourceOffset, int sourceCount)
 Copies a range of elements from a source array into the NetworkArray.
 
void CopyTo (List< T > list)
 Adds each value to the supplied List. This does not clear the list, so values will be appended to the existing list.
 
void CopyTo (NetworkArray< T > array)
 Copies values to the supplied array.
 
void CopyTo (T[] array, bool throwIfOverflow=true)
 Copies values to the supplied array.
 
Get (int index)
 Returns the array value at supplied index.
 
Enumerator GetEnumerator ()
 Returns an enumerator that iterates through the collection.
 
IEnumerator< T > IEnumerable< T >. GetEnumerator ()
 
IEnumerator IEnumerable. GetEnumerator ()
 
 NetworkArray (byte *array, int length, IElementReaderWriter< T > readerWriter)
 NetworkArray constructor.
 
Set (int index, T value)
 Sets the array value at the supplied index.
 
T[] ToArray ()
 Allocates a new array and copies values from this array. For a non-alloc alternative use CopyTo(List<T>).
 
string ToListString ()
 Returns the elements of this array as a string, with value separated by
characters. Specifically for use in the Unity inspector. This is private and only is found by NetworkBehaviourEditor using reflection, so do not rename this method.
 
NetworkArrayReadOnly< T > ToReadOnly ()
 Returns a NetworkArrayReadOnly view of this array.
 
override string ToString ()
 Returns a string that represents the current object.
 

Static Public Member Functions

static implicit operator NetworkArrayReadOnly (NetworkArray< T > value)
 Returns a NetworkArrayReadOnly view of this array.
 

Public Attributes

byte * _array
 
int _length
 
IElementReaderWriter< T > _readerWriter
 

Static Public Attributes

static StringBuilder _stringBuilderCached
 

Properties

int Length [get]
 The fixed size of the array.
 
this[int index] [get, set]
 Indexer of array elements.
 
object INetworkArray. this[int index] [get, set]
 Gets or sets the element at the specified index.
 
- Properties inherited from INetworkArray
object this[int index] [get, set]
 Gets or sets the element at the specified index.
 

Detailed Description

Fusion type for networking arrays. Maximum capacity is fixed, and is set with the CapacityAttribute.

Typical Usage: [Networked, Capacity(4)]
NetworkArray<float> syncedArray => default;

Optional usage (for NetworkBehaviours ONLY - this is not legal in INetworkStructs): [Networked, Capacity(4)]
NetworkArray<int> syncedArray { get; } = MakeInitializer(new int[] { 1, 2, 3, 4 });

Usage for modifying data: array.Set(123); array[0] = 456;

Template Parameters
TT can be a primitive, or an INetworkStruct.

Member Function Documentation

◆ CopyFrom() [1/2]

void CopyFrom ( List< T >  source,
int  sourceOffset,
int  sourceCount 
)

Copies a range of values from a supplied source list into the NetworkArray.

Parameters
sourceThe source list from which to copy elements.
sourceOffsetThe zero-based index in the source list at which copying begins.
sourceCountThe number of elements to copy from the source list.
Exceptions
ArgumentNullExceptionThrown when the provided source list is null.
ArgumentExceptionThrown when the number of elements to copy is greater than the length of the NetworkArray.
ArgumentOutOfRangeExceptionThrown when the sum of sourceOffset and sourceCount is greater than the length of the source list.

◆ CopyFrom() [2/2]

void CopyFrom ( T[]  source,
int  sourceOffset,
int  sourceCount 
)

Copies a range of elements from a source array into the NetworkArray.

Parameters
sourceThe source array from which to copy elements. Must not be null.
sourceOffsetThe zero-based index in the source array at which copying begins.
sourceCountThe number of elements to copy from the source array.
Exceptions
ArgumentNullExceptionThrown when the provided source array is null.
ArgumentExceptionThrown when the number of elements to copy is greater than the length of the NetworkArray.
ArgumentOutOfRangeExceptionThrown when the sum of sourceOffset and sourceCount is greater than the length of the source array.

◆ CopyTo() [1/2]

void CopyTo ( NetworkArray< T >  array)

Copies values to the supplied array.

Parameters
arrayNetworkArray to copy to.
Exceptions
ArgumentExceptionThrown if the supplied array is smaller than this NetworkArray<T>.

◆ CopyTo() [2/2]

void CopyTo ( T[]  array,
bool  throwIfOverflow = true 
)

Copies values to the supplied array.

Parameters
arrayArray to copy to.
throwIfOverflowIf true, this method will throw an error if the supplied array is smaller than this NetworkArray<T>. If false, will only copy as many elements as the target array can hold.

◆ operator NetworkArrayReadOnly()

static implicit operator NetworkArrayReadOnly ( NetworkArray< T >  value)
static

Returns a NetworkArrayReadOnly view of this array.

Parameters
valueNetworkArray to convert.
Returns
NetworkArrayReadOnly view of this array.

Property Documentation

◆ this[int index] [1/2]

T this[int index]
getset

Indexer of array elements.

Implements INetworkArray.

◆ this[int index] [2/2]

object INetworkArray. this[int index]
getset

Gets or sets the element at the specified index.

Parameters
indexThe zero-based index of the element to get or set.

Implements INetworkArray.