在Godot 3.X中添加触屏摇杆

发布时间 2023-06-23 11:22:43作者: wsdx233

开源项目地址:https://github.com/shinneider/godot_touchJoyPad

 

效果图:

 

 

下载项目

方法一

直接从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")

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