Description
Description
NativeArrays seem to throw a memory leak error if I attempt to serialize the class using them with INetworkSerializable.
NetworkSerialize with a NativeArray and setting the Allacator.Persistent will throw this memory leak issue.
`
public class TestActionSystem : INetworkSerializable, IDisposable
{
private NativeArray<int> _intArray;
public void Setup()
{
_intArray = new NativeArray<int>(1, Allocator.Persistent);
}
public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
{
serializer.SerializeValue(ref _intArray, Allocator.Persistent); //this will throw the error
}
public void Dispose()
{
Debug.Log($"Disposing _intArray {_intArray.IsCreated} {_intArray.Length}");
if (_intArray.IsCreated)
{
_intArray.Dispose();
}
}
}
`
NativeArrays with a custom struct also break if that custom struct impliments INetworkSerializable. If i dont add that interface and or serialize using the methods here it does work.
NativeLists dont even appear to work. I tried the simplest version with just ints, and this didn't work .
`
public class TestActionSystem : INetworkSerializable, IDisposable
{
public NativeList<int> IntList => _intList;
private NativeList<int> _intList;
public void Setup()
{
_intList = new NativeList<int>(0, Allocator.Persistent);
}
public void Add(int value)
{
_intList.Add(value);
}
public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
{
serializer.SerializeValue(ref _intList);
}
public void Dispose()
{
if (_intList.IsCreated)
{
_intList.Dispose();
}
}
}
`
My goal is hopefully just use a NativeList with my own custom structs with a few more NativeLists inside (to get around the issue of directly nesting NativeLists with other NativeLists.
But I can't even get the NativeArrays to work without a memory leak, and the NativeLists to even serialize.
Reproduce Steps
Provided in description
Actual Outcome
NativeArray with a int fires a memory leak exception. (needs to work with custom structs)
NativeList with a int won't even serailize.
Expected Outcome
NativeArray doesn't fire memory leak
NativeList serailizes on the network.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
- OS: Windows 11 Home 23H2
- Unity Version: 6000.0.19f1
- Netcode Version: 2.0.0 (latest release full version)
Additional Context
Add any other context about the problem here. Logs, code snippets would be useful here but please also consider attaching a minimal Unity project that reproduces the issue.