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 
 { 
 
 } 
 
 } 
}

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

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

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

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

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

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