前言
Enhanced On-Screen Stick提供与Unity Input System/uGUI兼容的高级虚拟操纵杆。它使用Unity的Input System新输入系统屏幕控制来模拟触摸设备(如移动的设备)上的操纵杆输入。它还允许高级定制,如触摸位置跟踪,死区和可调操作区域。
对Input System新输入系统不熟悉的同学,可以查看我的这篇文章:
【推荐100个unity插件之18】Unity 新版输入系统Input System的使用,看这篇就够了
地址
github:https://github.com/AnnulusGames/EnhancedOnScreenStick
gitee:https://gitee.com/xiangyuphp/EnhancedOnScreenStick
要求
- Unity 2020.1或更高版本
- Input System 1.0.0或更高版本
安装
从窗口>包管理器打开包管理器。
单击+按钮> Add package from git URL.
输入以下URL:
https://github.com/AnnulusGames/EnhancedOnScreenStick.git?path=Assets/EnhancedOnScreenStick
或者,打开Packages/manifest.json并将以下内容添加到dependencies块:
{
"dependencies": {
"com.annulusgames.enhanced-on-screen-stick": "https://github.com/AnnulusGames/EnhancedOnScreenStick.git?path=Assets/EnhancedOnScreenStick"
}
}
快速启动
您可以从 Create > Enhanced On-Screen Controls > On-Screen Stick 创建虚拟操纵杆。
创建后,将其放置在画布上并调整其大小和外观。带有附加组件的对象的“RectTransform ”范围将成为可操作区域。
接下来,从检查器设置控制路径。这允许您模拟来自任何设备的输入。
安装程序现已完成。您可以像往常一样使用输入系统处理输入。下面是一个使用增强的屏幕控制杆和InputAction进行移动处理的示例。
using UnityEngine;
using UnityEngine.InputSystem;
public class Player : MonoBehaviour
{
[SerializeField] InputAction inputAction;
[SerializeField] float movementSpeed = 5f;
void Start()
{
inputAction.Enable();
}
void Update()
{
transform.position += movementSpeed * Time.deltaTime * (Vector3)inputAction.ReadValue<Vector2>();
}
}
参数介绍
StickType 类型
StickType | 介绍 |
---|---|
Fixed | 杆始终固定在其初始位置。 |
Floating | 操纵杆移动到触摸位置并保持固定,直到拖动结束。 |
Dynamic | 摇杆移动到触摸位置并跟随拖动移动。 |
Movement Range
:移动范围,指定与要移动的控制柄中心的距离。
Dead Zone
:死区,将输入阈值设置为0到1。死区以下的输入值被校正为0。
Show Only When Pressed
: 仅在按下时显示,如果为true,背景和句柄在未触摸时处于非活动状态。
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~