Я пытаюсь сделать так, чтобы стандартный текст появлялся в сцене при нажатии левой кнопки мыши. Однако у меня проблемы с маршрутизацией. Это мой код X3D:
<X3D>
<Scene>
<Viewpoint DEF="VP" position="0 0 .6"/>
<PythonScript DEF="PS" url="test.py"/>
<Shape>
<Text DEF="TXT" string="initial message">
<FontStyle justify='MIDDLE' size='0.02' />
</Text>
</Shape>
<MouseSensor DEF="MS"/>
<ROUTE fromNode="MS" fromField="leftButton" toNode="PS" toField="showText"/>
<ROUTE fromNode="PS" fromField="showText" toNode="TXT" toField="string"/>
</Scene>
</X3D>
И код Python:
from H3DInterface import *
class ShowText(TypedField(MFString, SFBool)):
def __init__(self):
MFString.__init__(self)
self.inactive_txt = 'Press left mousebutton'
self.active_txt = 'Hello World!'
def update(self, event):
if event.getValue() == 1:
return self.active_txt
else:
return self.inactive_txt
showText = ShowText()
Это предупреждение, которое я получил, но не смог решить:
Предупреждение: недопустимое возвращаемое значение из функции update() для определенного поля Python типа PythonScript_000000000722E320.ShowText
Что для меня странно, так как текстовый узел имеет строку атрибута base_type MFString.