我使用Unity,所以这在技术上是UnityScript,但我认为内置数组的工作方式相同。我有一个我创造的数组:
var room:roomInfo[,,];
room=new roomInfo[5,5,5];
删除语法是什么?简单地执行delete room;
或delete room[,,];
似乎无效。删除后我需要这样做:
room=new roomInfo[10,10,10];
似乎是一个荒谬简单的问题,但我对这些事情感到困惑而忘记了,我无法在谷歌上找到任何东西(因为我无法找到要搜索的内容)。
答案 0 :(得分:2)
您不需要这样做,因为UnityScript已经为您完成了这项工作(Automatic Memory Management)。但如果您仍然喜欢自己的方式,请使用:
room = null;
在此之后,您可以将其初始化为:
room = new roomInfo[10,10,10];
所以完整的代码是:
room = null;
room = new roomInfo[10,10,10];
答案 1 :(得分:1)
Unity Script是(作为JavaScript)使用垃圾收集来自动释放未使用的内存。
如果没有指向对象的变量,则释放元素。垃圾收集器知道可以保存指向数组的指针的任何变量,并确定是否有任何指向该数组的变量。
如果没有变量指向您的数组,它将被标记为已释放。
创建对象,字符串或数组时,存储它所需的内存是从称为堆的中央池分配的。当项目不再使用时,它曾经占用的内存可以被回收并用于其他内容。 [...]如今,Unity的Mono引擎等运行时系统会自动为您管理内存。
http://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html