Звуки шагов

Это выдержка из скрипта FPSPlayer туториала FPS Tutorial.

Позволяет сделать рандомный выбор из случайных звуков шагов. Ставится на Game Object с CharacterController`ом.

var walkSounds : AudioClip[];
var audioStepLength = 0.3;

function Awake () {
PlayStepSounds ();
}

function PlayStepSounds () {
    var controller : CharacterController = GetComponent(CharacterController);

    while (true) {
        if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
            audio.clip = walkSounds[Random.Range(0, walkSounds.length)];
            audio.Play();
            yield WaitForSeconds(audioStepLength);
        } else {
            yield;
        }
    }
}
var walkSounds : AudioClip[];
var audioStepLength = 0.3;

function Awake () {

PlayStepSounds ();

}

function PlayStepSounds () {
var controller : CharacterController = GetComponent(CharacterController);

while (true) {
if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
audio.clip = walkSounds[Random.Range(0, walkSounds.length)];
audio.Play();
yield WaitForSeconds(audioStepLength);
} else {
yield;
}
}
}

Реклама

Звуки шагов: 8 комментариев

  1. Хм, не работает. Быть может я что то не так делаю? Вот ошибка:
    IndexOutOfRangeException: Array index is out of range.
    NewBehaviourScript+$PlayStepSounds$1+$.MoveNext () (at Assets/NewBehaviourScript.js:15)
    В Unity новичок, поэтому..

    • Ты пробовал назначить сам массив в свойствах скрипта на объекте? Нужно поставить некоторое количество, и в появившиеся поля вставить необходимые звуки.

  2. Надеюсь ты не против ответить на ещё один вопрос? Написал скрипт меню (не без помощи:)), очень простой. вот он:

    var isNewGameButton = false;
    var isQuitButton = false;
    var camera1:Camera;

    function onMouseUp()
    {

    if ( isQuitButton )
    {

    Application.Quit();

    }
    else if ( isNewGameButton )
    {

    Application.LoadLevel (1);

    }
    }

    И повесил его на кубы. Один куб назначил как is New Game Button другой как is Quit Button. Вроде всё верно, но при нажатии ничего не происходит. Box Collider стоит и там и там. Никак не въеду, почему не работает (в программировании я ноль). Сразу извиняй, если надоедаю. Вот.

    • Я в программировании тоже не мастер, чем смогу — помогу.
      Функция неправильно названа — OnMouseUp() должно быть.

      var isNewGameButton = false;
      var isQuitButton = false;
      var camera1:Camera;

      function OnMouseUp()
      {

      if ( isQuitButton )
      {

      Application.Quit();
      print(«Quit»);
      }
      else if ( isNewGameButton )
      {

      Application.LoadLevel (1);
      print(«Load»);
      }
      }

      Используй print(«string»), чтобы определять, что в какой момент происходит в коде, очень полезная команда.

    • Спасибо! Всегда рад сотрудничать с музыкантами, напишу, как будет возможность заняться чем-нибудь!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s