3
我在Maya中創建的自定義節點有一個小問題。如果我這樣做:Maya:刪除節點不直接調用析構函數
createNode -n "MyInstance" "MyNode";
delete "MyInstance";
它不調用類析構函數。但是,如果你做了一個新場景,打開一個新文件,或者做任何迫使當前場景被破壞的東西,那麼析構函數最終會被調用。
事情是我有一些內存分配,我想立即清除,而不是等到結束才真正清除它們。因爲他們不再需要,所以他們應該被清除。
我查看了文檔,並沒有看到任何虛擬函數,我可以重寫,這將在節點被實際刪除時調用,或者類似的事件。有這樣的函數來跟蹤屬性之間的連接(在這種情況下實際使用它),但沒有這樣的事情來刪除。
因此,如果您有任何人有一個繞過想法或模擬這種方式,請分享!
謝謝。
W¯¯
這是足夠的代碼,或者你必須調用回調具體的析構函數? –
如果您在構造函數中或在該節點的任何其他位置分配了任何內容,則需要在那裏釋放它。特別是如果在內部,您的數據可以由多個節點共享。有點類似於共享指針,請確保您減少計數並在需要時刪除。 – widgg
好吧,因爲我的問題看起來像你的,效果稍有不同。使用刪除鍵刪除節點(MPxNode)時,Maya會崩潰。如果我通過代碼(mdg.deleteNode)刪除它,那麼它可以工作。但是中斷nodeRemoveCallback似乎不夠。 –