@XDecent

Как сделать нормальное считывание касаний в юнити?

Суть в том,что нужно что бы герой постоянно при 1 нажатии летел вверх,а если нажать ещё раз - то уже вниз.При нажатии менял своё направление (вверх-вниз) и при зажатии оставался в воздухе и не менял свои координаты.НЕ могу реализовать это в юнити для телефонов.
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
ShockWave2048
@ShockWave2048
imposter
Примерный код в Update():
var touches = Input.touches;
        foreach (var t in touches)
        {
            switch (t.phase)
            {
                case (TouchPhase.Began): // Вверх
                    break;
                case (TouchPhase.Stationary):// Висим на месте
                    break; 
                case (TouchPhase.Ended): // Вниз
                    break; 
            }
        }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zZaKko
@zZaKko
Люблю стратегии и Unity.
Надо считывать разное нажатие клавиш:
public Gameobject obj; //Префаб игрока
public int c; //Счетчик положения

void Update(){
if(Input.GetKey(KeyCode.Space))//При зажатии
c = 3;//Положение игрока в воздухе
else c = 1;
if(Input.GetKeyUp(KeyCode.Space) && c == 1)//При нажатии с отжатием
c = 2; //Положение падения
else if(Input.GetKeyUp(KeyCode.Space) && c == 2)//При нажатии с отжатием
c = 1;//Положение взлета

if(c == 1)
obj.transform.position += new Vector3(0f ,1f * Time.deltaTime, 0f); //По вектору y обьект плавно летит вверх
esle if(c == 2)
obj.transform.position -= new Vector3(0f ,1f * Time.deltaTime, 0f); //По вектору y обьект плавно падает вниз
}

Как то так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы