UIのパラメータが変更された時のコールバック

Viewer StateのHDAでUIのパラメータの値が変更された時に呼び出される関数をつくる。

    # ユーザーがStateに入ると呼び出される(エンターキーを押すと入る)
    def onEnter(self, kwargs):
        # パラメータが変更された時に呼び出すイベントの追加
        self.event_callback = self.node.addEventCallback([hou.nodeEventType.ParmTupleChanged], self.onParmChanged)

    # パラメータが変更された時に呼び出される
    def onParmChanged(self,**kwargs):
        changed_parm = kwargs["parm_tuple"]
        if changed_parm.name() == "showCollision":
            isShowCollision = self.node.parm("showCollision").eval()
            if(isShowCollision):
                self.showGeometry(True)
            else:
                self.showGeometry(False)

showCollisionというトグルをオンオフするとonParmChanged()という関数が呼び出されるようにしている。

タイトルとURLをコピーしました