forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Звук бега и шага. Проблема C# (http://forum.boolean.name/showthread.php?t=18062)

mepihin 07.04.2013 13:51

Звук бега и шага. Проблема C#
 
вот есть есть скрипт на бег, в котором мне надо воспроизвести звук бега с интервалом воспроизведения звука в 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; }
        }
       
}


Andvrok 07.04.2013 21:40

Ответ: Зву бега и шага. Проблема C#
 
Скорее всего, я не прав, но нельзя ли просто добавить в звуковой файл полсекунды тишины?

Arton 07.04.2013 23:02

Ответ: Зву бега и шага. Проблема C#
 
Цитата:

Сообщение от Andvrok (Сообщение 256521)
Скорее всего, я не прав, но нельзя ли просто добавить в звуковой файл полсекунды тишины?

Ты неправ.

seaman 08.04.2013 01:03

Ответ: Звук бега и шага. Проблема C#
 
Ну насколько я знаю - Update не корутина. Не используйте в ней yield, а вызывайте из нее корутину - StartCoroutine. Причем по условию, чтобы не плодить корутины каждый кадр. Запустил - установи флаг, чтобы второй раз не запустить.


Часовой пояс GMT +4, время: 00:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot