Мой код Unity C# не заставляет спрайт [весло] перемещаться вверх и вниз на сенсорном экране

Мой код Unity C# не заставляет спрайт [весло] перемещаться вверх и вниз на сенсорном экране

using UnityEngine;

using System.Collections;

public class Paddle : MonoBehaviour 
{

    public float paddleSpeed = 1;

    public Vector3 playerPos;

    void Update()
    {
        float yPos = transform.position.y + (Input.GetAxis("Vertical") * paddleSpeed);
        playerPos = new Vector3(-20, Mathf.Clamp(yPos, -13, 13), 0);
        transform.position = playerPos;
    }
}

1 ответ

Во-первых, проверьте, возвращает ли Input.GetAxis("Vertical") значение. Возможно, вы ввели неверное отображение, и вы никогда не получите значение. Затем проверьте, не слишком ли велико значение. Поскольку вы зажимаете между -13 и 13, возможно, ваш объект остается на том же месте.

И просто несколько советов:

  • Очевидно, вам не нужен playerPos как переменная класса, поскольку вы используете его только в одной функции

  • Запустите функцию обновления, проверив

    if(Input.GetAxis("Vertical") > 0 )
    

В противном случае вы будете создавать и назначать позицию каждый раз, даже если она не изменится

Другие вопросы по тегам