вот есть есть скрипт на бег, в котором мне надо воспроизвести звук бега с интервалом воспроизведения звука в 0.5f, то есть между повторным воспроизведением должна быть небольшая пауза.
Не получается, IEnumirator неправильно работал:
using UnityEngine;
using System.Collections;
public class Run : MonoBehaviour {
public float SpeedOgran = 10f;
public float startogran = 10f;
public float maxwait = 20f;
public int speed = 4;
private CharacterController controller;
private CharacterMotor motor;
private bool activeres = false;
public AudioClip runsound;
void Start()
{
controller = GetComponent<CharacterController>();
motor = GetComponent<CharacterMotor>();
}
void Update()
{
if(Input.GetKey(KeyCode.LeftShift) && activeres == false)
{
if(controller.isGrounded && controller.velocity.magnitude > 1)
{
if(SpeedOgran > 0)
{
SpeedOgran -= Time.deltaTime;
motor.movement.maxForwardSpeed = speed;
audio.clip = runsound;
audio.Play();
yield return new WaitForSeconds(0.5f);
}
if(SpeedOgran <= 0 && activeres == false)
{
activeres = true;
motor.movement.maxForwardSpeed = 2;
audio.Stop();
}
}
}
if(Input.GetKeyUp(KeyCode.LeftShift))
{
motor.movement.maxForwardSpeed = 2;
}
if(activeres == true) SpeedOgran += Time.deltaTime;
if(SpeedOgran > maxwait){ SpeedOgran = startogran; activeres = false; }
}
}