Unity Transform, позиция - PullRequest
       6

Unity Transform, позиция

0 голосов
/ 25 января 2019

Я сталкиваюсь с проблемой следующим образом:

Круг расположен Расположение круга до начала игры.

при нажатии воспроизведения он переходит в другое место, как показаноздесь после нажатия кнопки воспроизведения

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

public class circularmouse : MonoBehaviour {
[SerializeField] float timeCounter = 0;
[SerializeField]bool Direction = false;
[SerializeField] float angularSpeed = 0f;

public Vector3 startPosition;

private void Start()
{
    startPosition = transform.position;
}




void Update()
{
    if (Input.GetKeyDown(KeyCode.LeftArrow))
    {
        angularSpeed = 4f;
        Direction = true;
    }
    if (Input.GetKeyDown(KeyCode.RightArrow))
    {
        Direction = false;
        angularSpeed = 4f;
    }
    if (Direction) //if direction is true
    {
        timeCounter += Time.deltaTime * angularSpeed;
        float x = Mathf.Cos(timeCounter);
        float y = Mathf.Sin(timeCounter);
        transform.position = new Vector3(x, y, 0);
    }
    else
    {
        timeCounter -= Time.deltaTime * angularSpeed;
        float x = Mathf.Cos(timeCounter);
        float y = Mathf.Sin(timeCounter);
        transform.position = new Vector3(x, y, 0);
    }

Ваша помощь приветствуется

1 Ответ

0 голосов
/ 25 января 2019

Ваша проблема в том, что, поскольку Direction изначально ложно, вы сразу переходите к этой строке:

transform.position = new Vector3(x, y, 0);

, которая устанавливает преобразование в положение (1, 0, 0).

Не совсем уверен, что вы пытаетесь достичь, но, возможно, вы вместо этого хотите добавить координаты к позиции?

transform.position += new Vector3(x, y, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...