본문 바로가기

Graphics/playcanvas

[playcanvas] Delete all child entities

// Good code
const cnt = someEntity.children.length;
for (let i = 0; i < cnt; i++) {
	let child = someEntity.children.pop();
	child.destroy();
}

child.destroy() 하면 someEntity.children 리스트에서 없어진다.

그니깐 그냥 생각없이 for 문안에 length 를 놓으면 당연히 안된다

왜냐면 리스트의 길이가 루프돌때마다 변하기 때문이다. 

아래와 같이하면 안됨.

// Bad code
for (let i = 0; i < someEntity.children.length; i++) {
	let child = someEntity.children[i]
	child.destroy();
}

인덱스를 줘서 값을 삭제해도 리스트에서 하나씩 없어지니깐 pop()을 사용하는게 맞다

아니면 someEntity.children[0].destroy(); 해도 될것 같다. 

 

removeChild [link]도있는데 캔버스상에서 안없어진다.. 그래서 그냥 destroy() 를 사용했다.

'Graphics > playcanvas' 카테고리의 다른 글

[playcanvas] Asset 로드에 대한 모든것  (0) 2020.01.07
[playcanvas] Delete all child entities  (0) 2019.12.26
[playcanvas] loadFromUrl 에 대한 고찰  (0) 2019.12.03
[playcanvas] Anchor 와 pivot  (0) 2019.12.02
[playcanvas engine] 기초  (0) 2019.11.18
[Playcanvas] 레이어  (0) 2019.10.30