簡體   English   中英

Unity 中的 2D 運動錯誤

[英]2D Movement Bug in Unity

我正在嘗試在 Unity 中制作 2D 太空射擊游戲,但偶然發現了一個需要修復的錯誤。 我正在使用 Unity 2021.1.0f1 和 Unity 中的新輸入系統,我正在嘗試為我的角色實現移動。 當我按下 WASD 鍵時,出於某種原因,我的角色每次按下都會移動 15 個單位。 我不想要那樣,我想要我的角色平穩移動。 這是我的代碼:

using UnityEngine;
using UnityEngine.InputSystem;

public class Ship : MonoBehaviour
{
    private Keyboard _keyboard = Keyboard.current;

    [SerializeField] private float speed = 0.25f;
    [SerializeField] private GameObject projectile;
    [SerializeField] private Rigidbody2D rigidbody;

    private void Start()
    {
        if (speed == null)
        {
            Debug.Log("Please assign a a value to \"speed\".");
        }

        if (rigidbody == null)
        {
            Debug.Log("Please assign a a value to \"rigidbody\".");
        }

        if (projectile == null)
        {
            Debug.Log("Please assign a a value to \"projectile\".");
        }
    }

    public void OnMove(InputAction.CallbackContext context)
    {
        Vector2 movementVector = context.ReadValue<Vector2>();
        Vector3 move = Quaternion.Euler(0.0f, transform.eulerAngles.y, 0.0f) * new Vector3(movementVector.x, movementVector.y, 0.0f);

        transform.position += move * speed;
    }

    public void OnFire(InputAction.CallbackContext context)
    {
        Vector2 spawnPosition = new Vector2(transform.position.x, 0.5f);

        if (context.performed)
        {
            Instantiate(projectile, spawnPosition, Quaternion.identity);
        }
    }
}

任何人?

我最近一直在做同一個項目,我使用以下代碼來移動我的宇宙飛船,它移動得很順利:

無效 C_Movement(){

  //Input controller (direction)
  float horizontalInput = Input.GetAxis("Horizontal");
  float verticalInput = Input.GetAxis("Vertical") ;

  Vector3 directionX = new Vector3(horizontalInput,0,0) ;
  transform.Translate(directionX* Time.deltaTime * 13) ;

  Vector3 directionY = new Vector3(0,verticalInput,0) ;
  transform.Translate(directionY* Time.deltaTime * 13) ;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM