Добавьте силу относительно угла игрового объекта - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь создать лунную посадку в Unity2D, но у меня возникают проблемы с добавлением тяги в определенном направлении, в основном в направлении, в котором находится ракета.В настоящее время он всегда будет вертикальным, даже если корабль находится под углом 90 градусов.

    public float thrust;
private Rigidbody2D rocket;
public int rotationSpeed;
// Use this for initialization
void Start()
{
    rocket = gameObject.GetComponent<Rigidbody2D>();
}

void Update()
{

    if (Input.GetButton("Horizontal"))
    {
        if (rocket.transform.rotation.z < 90 && rocket.transform.rotation.z > -90)
        {
            Debug.Log(rocket.transform.rotation.z);
            float angle = Input.GetAxis("Horizontal");
            if (angle > 0)
            {
                rocket.transform.Rotate(Vector3.forward * rotationSpeed * Time.deltaTime);

            }
            else
            {
                rocket.transform.Rotate(Vector3.back * rotationSpeed * Time.deltaTime);

            }
        }
    }

}

void FixedUpdate()
{
    if (Input.GetButton("Vertical"))
    {

        Debug.Log(rocket.transform.rotation.z);
        float angle = Input.GetAxis("Vertical");
        if (angle > 0)
        {
            rocket.AddRelativeForce(Vector3.forward * 10);

        }

    }
}

1 Ответ

0 голосов
/ 13 октября 2018

попробуйте

`rocket.AddForce(Vector3.up*10, ForceMode.Impulse);`

вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...