arm*_*ong 3 c# unity-game-engine
如果我有:
List<GameObject> brickList;
Run Code Online (Sandbox Code Playgroud)
每次我实例化一个砖块实例(这是一个预制的gameObject)时,我会把它放到列表中:
brickList.add(Instantiate(brick, transform, Quaternion.identity));
Run Code Online (Sandbox Code Playgroud)
如果我通过以下方式销毁List中的砖块GameObject.Destroy():
private void OnTriggerEnter2D(Collider2D collision){
if (collision.gameObject.CompareTag("Brick")){
Destroy(collision.gameObject);
}
}
Run Code Online (Sandbox Code Playgroud)
会不会使在参考brickList点null,并采取销毁砖出来的渲染系统的?
小智 6
砖块将不再渲染.游戏对象和游戏对象上的组件将处于"破坏"状态.如果将游戏对象与null(brickList[0] == null)进行比较,它将true因操作符重载而返回- 即使对象不是真的 null.如果组件已被销毁,那么调用Unity组件的大多数属性和方法都会给你一个例外.如果您希望列表中的引用消失,则必须自行删除它.