在Godot 3.X中添加触屏摇杆
阅读原文时间:2023年08月27日阅读:4

效果图:

方法一

直接从godot assets lib下载

如图,直接下载自动安装即可

方法二

从github下载zip导入

(如果此方法导入后提示素材丢失,按照提示修改插件目录的路径即可)

导入完成之后,在资源管理器中可以找到对应的场景

在需要的场景中的UI画布层新建一个ViewportContainer,然后将在里面实例化touchJoyPad.tscn

此时摇杆效果如图

选中摇杆后,可以发现有这些属性可以设置

它们分别为

Left Pad Style 摇杆风格:D-Pad按键 JoyStick摇杆

mapAnalogToDpad 是否将摇杆映射为按键(D-Pad)

visibleOnlyTouchscreen 只在触摸屏上可见

AnalogTapToShow 摇杆在点击屏幕时显示且可以在任意位置触发

配置结束后打开场景就能愉快地使用摇杆了!

D-Pad按键默认会自动将点击的动作映射到ui_XXX(left,right,up,down),摇杆可以通过建立节点,设置分组为JoyStick然后挂载脚本,使用建立analog_signal_change来监听摇杆事件,如下:

1 func analog_signal_change(analogPosition, analogName):
2 # When to move Analog, send signal to natives ui signal
3 # but implements a dead zone in 20% in the curso of Analog
4 # This is good for to avoid user mistakes in move hand
5 Input.action_press("ui_left") if analogPosition.x < -0.2 else Input.action_release("ui_left") 6 Input.action_press("ui_right") if analogPosition.x > 0.2 else Input.action_release("ui_right")
7 Input.action_press("ui_down") if analogPosition.y < -0.2 else Input.action_release("ui_down") 8 Input.action_press("ui_up") if analogPosition.y > 0.2 else Input.action_release("ui_up")

如果想要定制摇杆功能,可以修改源码,源码就在下图的位置: