【发布时间】:2021-10-20 12:41:34
【问题描述】:
我正在使用新的输入系统创建一个射击愤怒的小鸟风格的游戏。
我想在鼠标点击和释放时将鼠标位置保存到一个变量中。
订阅.started 事件不起作用。使用.performed,1次点击2次,开始一次,发布后一次。
当我尝试.canceled 时,它也不起作用。
private void OnEnable()
{
controls.Gameplay.Shoot.started += _ => PlayerAimingStart();
controls.Gameplay.Shoot.performed += _ => PlayerAimingPerformed();
}
private void PlayerAimingStart()
{
shootingPositionStart = controls.Gameplay.MousePosition.ReadValue<Vector2>(); shootingPositionStart.z = 0f;
}
private void PlayerAimingPerformed()
{
shootingPositionEnd = controls.Gameplay.MousePosition.ReadValue<Vector2>(); shootingPositionEnd.z = 0f;
Vector3 force = shootingPositionStart - shootingPositionEnd;
Vector3 clampedForce = Vector3.ClampMagnitude(force, maxDrag) * power;
bulletGO.GetComponent<Rigidbody2D>().AddForce(clampedForce, ForceMode2D.Impulse);
}
【问题讨论】: