CEPII
@CEPII
Житель убежища 101

Не переключается True False. Что делать?

spoiler
using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
 
public class RotateTank2 : MonoBehaviour 
{ 
 
 
 public Transform Selftransform;  
 
 public int speed = 6; 
 
 public bool rotate = true;
 
 
 
 
 // Use this for initialization 
 void Start() 
 { 

 
 } 
 void RightRotate() 
 { 
 transform.Rotate(0, 0, -3); 
 } 
 void LeftRotate() 
 { 
 transform.Rotate(0, 0, 3); 
 } 
 // Update is called once per frame 
 void FixedUpdate() 
 { 
 
 
 if (rotate == true && !Input.GetKey(KeyCode.D)) 
 { 
 RightRotate(); 
 
 } 
 
 if (rotate == false && !Input.GetKey(KeyCode.D)) 
 { 
 LeftRotate(); 
 
 } 
 
 if (Input.GetKey(KeyCode.D))
 
 
 rotate = !rotate; 
 
 Selftransform.position += Selftransform.up * speed * Time.deltaTime; 
 
 } 
 else 
 { 
 
 } 
 
 } 
}

Сделал переключатель юнити, который по нажатиюменяет направление кручения, но он не работает.Иногда он переключает, а иногда нет. Подскажите, что не так?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity Game Engine
VR for all
Input.GetKey(KeyCode.D)

вот тут проблема основная. кроме мешанины флагов которые вас путают))
почитайте чем отличается
GetKey
GetKeyDown
GetKeyUp.

и поймете. что GetKey - может несколько раз за кадр сработать.

и еще важный момент INPUTделать на Update (каждый кард для отзывчивости и адекватности).
не на FixedUpdate (это под физику)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
PHYGITALISM Москва
от 80 000 до 130 000 ₽
от 130 000 до 200 000 ₽
BP Mobile Москва
от 170 000 ₽
29 мая 2020, в 01:41
850 руб./за проект
29 мая 2020, в 00:02
5000 руб./за проект
28 мая 2020, в 23:42
10000 руб./за проект