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

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

コードではaddEventCallback()を使い、UIパラメータのshowCollisionというトグルをオンオフするたびにonParmChanged()という関数が呼び出されるようにしている。

# ユーザーがStateに入ると呼び出される(エンターキーを押すと入る)
def onEnter(self, kwargs):
    self.node = kwargs["node"]
    # パラメータが変更された時に呼び出すイベントの追加
    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)

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