У меня есть 2 проблемы, которые я хочу решить.
1-я проблема. Изменение движения X, Y, Z и его обновление.
В моей игре есть водитель, который, если пользователь нажимает, движется. Проблема в том, что я хочу, чтобы скорость была уменьшена с 15f до 5f, когда S (назад) нажата и удерживается до отпускания.
Вот мой код ниже моего скрипта игрока.
Пожалуйста, обратитесь к void playerwalk () и движению в обратном направлении ()
public class Move : MonoBehaviour
{
public float speed;
private Rigidbody rb;
private int count;
public Text countText;
// Use this for initialization
void Start()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText();
}
void playerWalk()
{
var x = Input.GetAxis("Horizontal") * Time.deltaTime * 75f;
var z = Input.GetAxis("Vertical") * Time.deltaTime * 15f;
transform.Rotate(0, x, 0);
transform.Translate(0, 0, -z);
}
void backwardMotion()
{
if (Input.GetKeyDown(KeyCode.S))
{
var z = Input.GetAxis("Vertical") * Time.deltaTime * 5f;
}
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Collectable"))
{
other.gameObject.SetActive(false);
count = count + 1;
SetCountText();
}
}
void SetCountText()
{
countText.text = "Count: " + count.ToString();
}
// Update is called once per frame
void Update ()
{
backwardMotion();
playerWalk();
}
}
В настоящее время это ни на что не влияет, и пустота backwardsmotion()
, похоже, не действует.
Нужен ли мне цикл while?
Какой синтаксис для do используется в C #?
2-я проблема: делать до цикла?
Для тех из вас, кто не видел мои последние посты, у меня также есть механик фонарика на моей модели автомобиля, где, если вы нажмете L, фонари включатся (переключатся), а если вы нажмете S, подсветка будет, как и вы задний ход.
Вот мой код механики игрового фонарика:
Пожалуйста, обратитесь к Void switchoffLights ()
public class headLights : MonoBehaviour
{
public Light frontlights;
public Light frontlights2;
public Light frontlights3;
public Light frontlights4;
public Light backlights;
public Light backlights2;
public Light backlights3;
public Light backlights4;
// Use this for initialization
void Start()
{
frontlights.enabled = !frontlights.enabled;
frontlights2.enabled = !frontlights2.enabled;
frontlights3.enabled = !frontlights3.enabled;
frontlights4.enabled = !frontlights4.enabled;
}
void switchoffLight()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.L))
{
if (frontlights && frontlights2 && frontlights3 && frontlights4 != null)
{
frontlights.enabled = !frontlights.enabled;
frontlights2.enabled = !frontlights2.enabled;
frontlights3.enabled = !frontlights3.enabled;
frontlights4.enabled = !frontlights4.enabled;
}
}
if (Input.GetKeyDown(KeyCode.S))
{
if (backlights && backlights2 && backlights3 && backlights4 != null)
{
backlights.enabled = !backlights.enabled;
backlights2.enabled = !backlights2.enabled;
backlights3.enabled = !backlights3.enabled;
backlights4.enabled = !backlights4.enabled;
}
}
}
}
Однако подсветка не выключается при отпускании клавиши S.
Я не мог четко понять, что происходит с другими кодами и ответами, поэтому я спрашиваю здесь.
Заранее спасибо! Я только начинаю занятия по программированию в 10 классе, поэтому, пожалуйста, объясните, как вы, молодому человеку.