游戏对象的 Unity Netcode,NetworkList 导致内存泄漏

问题描述 投票:0回答:1

我在使用 Unity 的网络代码 NetworkList 时遇到问题,在编辑器中测试时它工作正常,只是我收到两条错误消息:“本机集合尚未释放,导致内存泄漏”。我已经检查过并知道错误来自于我创建 NetworkList,但我不知道如何解决此问题或我做错了什么。我已经花了很多时间在这上面,请帮忙。

public class Vehicle_Handler : NetworkBehaviour
{
    // private 
    [SerializeField] new Renderer renderer;
    public NetworkList<bool> seats = new NetworkList<bool>();
    public bool hasDriver;
 



    void Update()
    {
        if (seats.Count == 0)
        {
            seats.Add(false);
        }
        if (Input.GetKeyDown(KeyCode.Space))
        {
            seats[0] = !seats[0];
            Debug.Log(seats[0]);
        }
        renderer.enabled = seats[0];
    }
}

这几乎是一个空脚本,但它给出了一个错误,我不知道为什么。我有点羞于问这个问题,但我找不到这方面的文档或示例。

c# unity-game-engine multiplayer
1个回答
0
投票

NetworkList
正在后台分配内存。

当不再需要时,你应该正确地

Dispose

private void OnDestroy()
{
    seats?.Dispose();
}
© www.soinside.com 2019 - 2024. All rights reserved.