It is a powerful joystick and touchpad component for UGUI.
这是一个代码极简但功能相对完善的基于UGUI的摇杆(Joystick)组件。
Install via git URL
You can add https://github.com/Bian-Sh/UniJoystick.git?path=Packages/Joystick
to Package Manager
If you want to set a target version, uses the tag so you can specify a version like #2.1.0. For example https://github.com/Bian-Sh/UniJoystick.git?path=Packages/Joystick#1.0.0
Requires a version of unity that supports path query parameter for git packages (Unity >= 2019.3.4f1, Unity >= 2020.1a21).
There is a high chance of failure for users in China.
Package development needs to be done in the Package folder,perhaps for avoid GUID conflicts。
示例代码
public float speed = 5;
[SerializeField] Joystick joystick;
void Start()
{
joystick.OnValueChanged.AddListener(v =>
{
if (v.magnitude != 0)
{
transform.Translate(v.x * speed, 0, v.y * speed, Space.World);
transform.rotation = Quaternion.LookRotation(new Vector3(v.x, 0, v.y));
}
});
}
无论静态 or 动态摇杆,都支持 Canvas 的所有 RenderMode
指向器挂载即可使用,不想用销毁即可(有些同学反映指向器用不到,所以剥离并作为可选挂件提供给大家)。
第一人称解决方案示例
第三人称解决方案示例
第一人称解决方案示例 (TouchPad版)
视频中演示了如下内容:
如果使用不同的unity导致了控制台各种报错,删除 package.json 即可,路径如下:
因为使用 IpointerXXXHandler 这套事件接口,淡化了 Touch 和 Input API ,所以:
ps :在 Microsoft's Surface Pro 、小米Pad 9 测试OK。
My Blog