Maya에서 만든 사용자 정의 노드에 작은 문제가 있습니다. 내가 다음과 같이하면 :Maya : 삭제 노드가 직접 소멸자를 호출하지 않습니다.
createNode -n "MyInstance" "MyNode";
delete "MyInstance";
클래스 소멸자를 호출하지 않습니다. 그러나 새로운 장면을 만들거나 새 파일을 열거 나 현재 장면을 강제로 파괴하는 작업을 수행하면 결국 소멸자가 호출됩니다.
사실 내가 끝내기까지 기다리지 않고 바로 지우고 자하는 메모리 할당이 있습니다. 왜냐하면 그들은 더 이상 필요하지 않기 때문에 그들은 깨끗이해야합니다.
설명서를 살펴본 결과 실제로 노드가 삭제되거나 비슷한 이벤트가 발생했을 때 무시할 수있는 가상 함수가 표시되지 않습니다. 속성 사이의 연결을 추적하는 기능 (이 경우 실제로 사용함)은 있지만 삭제할 것은 없습니다.
여러분 중 누군가가 바이 패스에 대한 아이디어가 있거나 시뮬레이션을위한 방법이 있다면 공유하십시오!
감사합니다.
W 그래서
코드로 충분합니까? 아니면 콜백에서 특정 소멸자를 호출해야합니까? –
생성자 또는 노드의 다른 지점에 아무 것도 할당하지 않은 경우 해당 노드에서 할당을 해제해야합니다. 특히 내부적으로 데이터를 여러 노드에서 공유 할 수 있습니다. 공유 포인터와 조금 비슷하지만 필요한 경우 카운트를 줄이고 삭제하십시오. – widgg
약간 다른 효과로 내 문제가 귀하의 것 같아서 좋습니다. delete 키를 사용하여 노드 (MPxNode)를 삭제하면 Maya가 충돌합니다. 코드 (mdg.deleteNode)를 통해 삭제하면 작동합니다. 그러나 nodeRemoveCallback을 방해하는 것으로는 충분하지 않습니다. –