var controller : CharacterController = GetComponent(CharacterController);
var FootStepsGrass : AudioClip []; // Таблица звуков по траве.
var FootStepsConcrete : AudioClip []; // Таблица звуков по бетону.
var FootStepsWood : AudioClip []; // Таблица звуков по дереву.
var FootStepsMetal : AudioClip []; // Таблица звуков по металлу.;
//var FootStepsUntagged : AudioClip []; // Таблица звуков без тега.
var audioSource : AudioSource;
private var StepTime : float = 0;
private var stepping : boolean = false; // Шагаем? По умолчанию нет.
private var material; // Матерьял
private var StepVolume : float; // Громкость
function Update () {
var hit : RaycastHit;
if(Physics.Raycast(transform.position, Vector3.down, hit, 2)) { // Выпускаем луч вниз на 2 метра.
if(hit.transform.tag == "grass") {
material = "grass";
}
if(hit.transform.tag == "concrete") {
material = "concrete";
}
if(hit.transform.tag == "wood") {
material = "wood";
}
if(hit.transform.tag == "metal") {
material = "metal";
}
//if(hit.transform.tag == "Untagged") {
//material = "Untagged";
//}
if(controller.isGrounded && !stepping){
if (Input.GetButton("Vertical") || Input.GetButton("Horizontal")){
// расчитываем время шага
// можно сделать проверку, на бег, ходьбу назад, и так далее.
StepTime = 0.5;
StepVolume = 1;
WalkSound();
}
}
}
}
function WalkSound(){
random_step = Random.Range(-0.06,0.06); // Рандомные промежутки времени.
Step_pitch = Random.Range(0.9,1.1); // Рандомные темб звука.
stepping = true;
audioSource.pitch = Step_pitch; // устанавливаем значение тембра.
audioSource.volume = StepVolume; // устанавливаем значение громкости.
if (material == "grass"){
audioSource.PlayOneShot (FootStepsGrass[Random.Range(0,FootStepsGrass.length)]); // воспроизводим случайный звук из таблицы Grass.
yield WaitForSeconds (StepTime + random_step); // ждем пока закончится шаг.
}
if (material == "concrete"){
audioSource.PlayOneShot (FootStepsConcrete[Random.Range(0,FootStepsConcrete.length)]); // воспроизводим случайный звук из таблицы Concrete.
yield WaitForSeconds (StepTime + random_step); // ждем пока закончится шаг.
}
if (material == "wood"){
audioSource.PlayOneShot (FootStepsWood[Random.Range(0,FootStepsWood.length)]); // воспроизводим случайный звук из таблицы Wood.
yield WaitForSeconds (StepTime + random_step); // ждем пока закончится шаг.
}
if (material == "metal"){
audioSource.PlayOneShot (FootStepsMetal[Random.Range(0,FootStepsMetal.length)]); // воспроизводим случайный звук из таблицы Metal.
yield WaitForSeconds (StepTime + random_step);
// ждем пока закончится шаг.
}
//if (material == "Untagged"){
//audioSource.PlayOneShot (FootStepsUntagged[Random.Range(0,FootStepsUntagged.length)]);
// yield WaitForSeconds (StepTime + random_step);
//}
stepping = false;
}
Вот скрипт нужно чтоб его слышали другие игроки. Ошибок нет