Тачи(touch) в юнити

188
28 января 2020, 15:10

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

public float moveSpeedPlayer = 7;
public GameObject Player;
void Start()
{
}
void Update()
{
    if (Input.touchCount > 0)
    { 
    Player.transform.position = new Vector2(transform.position.x, transform.position.y + moveSpeedPlayer * Time.deltaTime);
    }
}

}

Answer 1

Ещё раз посмотрите вот на эту строку

Player.transform.position = new Vector2(transform.position.x, transform.position.y + moveSpeedPlayer * Time.deltaTime);

Полагаю, на самом деле персонаж постоянно немного двигается, т.к. Time.deltaTime не постоянная)

Поясню - вы назначаете в позицию персонажа transform.position.y + moveSpeedPlayer * Time.deltaTime - но т.к. объект на котором висит скрипт, я полагаю, не двигается, то и позиция вашего персонажа устанавливается в эту точку и только немного дрожит из-за непостоянности Time.deltaTime.

Answer 2

Может, написать так?

Player.transform.position = new Vector2(Player.transform.position.x, Player.transform.position.y + moveSpeedPlayer * Time.deltaTime);

Новую позицию игрока берём как координата этого же игрока по X и координата этого же игрока по Y плюс скорость на время.

READ ALSO
Получения интервала времени из словаря C#

Получения интервала времени из словаря C#

Совсем недавно начал программировать, столкнулся с трудностьюУ меня есть заполненный данными словарь, внутри которого ключи - названия нужных...

219
Как получить значение по ID, использую C#?

Как получить значение по ID, использую C#?

Как получить значение по ID, использую C#? может что-то в конце кода нужно добавить? по факту нужно чтобы в переменной result оказалось значение...

280
Интерполяция строк в C# 6 без использования $

Интерполяция строк в C# 6 без использования $

В конфигурационном JSON файле используются строки следующего вида:

216