首先一开始设置场景中的某个节点为隐藏状态
mtCenter->setNodeMask(0);
一开始尝试在eventHandler里面使用节点名字来遍历这个节点,发现根本找不到,因为设置为隐藏节点,大概在遍历的过程中跳过了这个节点。(虽然这个节点明明还存在在内存中)If wrong, fix me please~
之后就只有通过viewer获取场景数据,获取到根节点,并且指定子节点来设置该节点的nodeMask。
viewer->getSceneData()->asGroup()->getChild(1)->setNodeMask(1);
NodeMask为0为隐藏,为1为可见。
或者也可以通过设置该节点的回调函数,用一个bool变量来控制回调吧,但感觉比较麻烦,而且回调函数每一次场景渲染都会被调用,觉得也比较低效吧。像我这样暴力改变节点状态的也不知道科不科学,反正是好用的。