По какой-то причине мой код Unity C# не работает там, где должен [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 По какой-то причине мой код Unity C# не работает там, где должен [закрыто]

Сообщение Anonymous »

В редакторе Unity я вижу, что звуковые эффекты footsteps() никогда не воспроизводятся и что переменная currentWalking никогда не меняется на true, что говорит о том, что часть кода даже не запускается. Понятия не имею, почему, возможно, я просто немного медленный, имейте в виду, я новичок.

Код: Выделить всё

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class walkingSounds : MonoBehaviour
{

public GameObject footstep;
public GameObject footstep2;
public GameObject footstep3;
public GameObject running1;
public GameObject running2;
public GameObject running3;
public int rndWalkSound;
public int rndRunSound;

public bool grounded = false;
public bool currentlyWalking = false;
public bool currentlyRunning = false;

void Start()
{
footstep.SetActive(false);
footstep2.SetActive(false);
footstep3.SetActive(false);
running1.SetActive(false);
running2.SetActive(false);
running3.SetActive(false);
}

void Update()
{
void footsteps() {
rndWalkSound = Random.Range(1, 4);
if (currentlyWalking == false && grounded == true)
{
if (rndWalkSound == 1)
{
footstep.SetActive(true);
}
else if (rndWalkSound == 2)
{
footstep2.SetActive(true);
}
else
{
footstep3.SetActive(true);
}
}

void StopFootsteps() {
footstep.SetActive(false);
footstep2.SetActive(false);
footstep3.SetActive(false);
}

if (Input.GetKey("w") && !Input.GetKey(KeyCode.LeftShift) || Input.GetKey("a") && !Input.GetKey(KeyCode.LeftShift) || Input.GetKey("s") && !Input.GetKey(KeyCode.LeftShift) || Input.GetKey("d") && !Input.GetKey(KeyCode.LeftShift)) {
footsteps();
currentlyWalking = true;
}

if (Input.GetKeyUp("w") || Input.GetKeyUp("a") || Input.GetKeyUp("s") || Input.GetKeyUp("d") || Input.GetKeyDown(KeyCode.LeftShift)) {
if (Input.GetKeyDown(KeyCode.LeftShift))
{
StopFootsteps();
currentlyWalking = false;
}
if (!Input.GetKey("w") && !Input.GetKey("a") && !Input.GetKey("s") && !Input.GetKey("d")) {
StopFootsteps();
currentlyWalking = false;
}
}

if (grounded == false)
{
StopFootsteps();
}

}
}
private void OnCollisionEnter(Collision collision)
{
grounded = true;
}

private void OnCollisionExit(Collision collision)
{
grounded = false;
}
}

Я не мог ничего увидеть, так как понятия не имею, что не так.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -it-should
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»