Звук шагов с помощью RaycastHit

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Звук шагов с помощью RaycastHit

Сообщение warmenzim 27 июн 2018, 23:26

Пытаюсь сделать звук шагов с помощью райкаста. Но райкаст воспроизводит звук до тех пор пока сталкивается. Можно ли заставить райкаст работать словно OnTriggerEnter? Чтобы звук воспроизводился лишь когда персонаж поставил ногу на землю?

Вот часть кода:
Синтаксис:
Используется csharp
int layerMask = 1 << 10;
                layerMask = ~layerMask;
                RaycastHit hitLeftFoot;
                if(Physics.Raycast(leftFootLocation.position,Vector3.down,out hitLeftFoot,distRayCheck,layerMask)){
                        Debug.DrawRay(leftFootLocation.transform.position, transform.TransformDirection(-Vector3.up) * hitLeftFoot.distance, Color.red);
                        leftFootAudioSource.PlayOneShot(impactLeft, 0.7F);
                }
                RaycastHit hitRightFoot;
                if(Physics.Raycast(rightFootLocation.position,Vector3.down,out hitRightFoot,distRayCheck,layerMask)){  
                        Debug.DrawRay(rightFootLocation.transform.position, transform.TransformDirection(-Vector3.up) * hitRightFoot.distance, Color.red);
                        rightFootAudioSource.PlayOneShot(impactRight, 0.7F);
                }
        }
 
warmenzim
UNец
 
Сообщения: 19
Зарегистрирован: 21 окт 2017, 12:12

Re: Звук шагов с помощью RaycastHit

Сообщение 1max1 27 июн 2018, 23:36

В чем проблема прицепить коллайдеры на ноги...
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Звук шагов с помощью RaycastHit

Сообщение warmenzim 27 июн 2018, 23:52

1max1 писал(а):В чем проблема прицепить коллайдеры на ноги...

Я делал скрипт на звук шагов используя oncollisionenter, но корректно работает лишь 1на нога. Вероятно из-за кривой анимации, либо моих рук.
warmenzim
UNец
 
Сообщения: 19
Зарегистрирован: 21 окт 2017, 12:12

Re: Звук шагов с помощью RaycastHit

Сообщение IDoNotExist 28 июн 2018, 09:07

warmenzim писал(а):Можно ли заставить райкаст работать словно OnTriggerEnter? Чтобы звук воспроизводился лишь когда персонаж поставил ногу на землю?

Ну, как то так:
Синтаксис:
Используется csharp
private bool haveHit = false;

private void Update()
{
    if(Physics.Raycast())
    {
        TryPlaySound();
        haveHit = true;
    }else{
        haveHit = false;
    }
}


private bool TryPlaySound()
{
    if(haveHit)
        return;

    AudioSource.PlayOneShot();
}

 
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Звук шагов с помощью RaycastHit

Сообщение jr900 28 июн 2018, 10:45

А я делал звук шагов на основе таймера. Т.е. пока держим клавиши шагания или стрейфа (и шифт для бега) - запускается счетчик, по истечении времени "шага" рейкастим вниз поверхность и играем звук, счетчик сбрасываем. Так можно точно настроить скорость проигрывания шагов и сделать разную на бег и на шаг.
jr900
UNIт
 
Сообщения: 83
Зарегистрирован: 16 апр 2016, 10:13

Re: Звук шагов с помощью RaycastHit

Сообщение Zaic 28 июн 2018, 11:24

к тому же рейкастить каждый кадр - ооооой как дорого для ресурсов процессора.
кто здесь, как здесь, почему здесь. ниче не знаю, это не я
http://unity3d.ru/distribution/viewtopic.php?f=17&t=18987
Аватара пользователя
Zaic
Старожил
 
Сообщения: 758
Зарегистрирован: 18 июл 2013, 23:13
Откуда: Отсюда
Skype: У меня нет скайпа
  • Сайт

Re: Звук шагов с помощью RaycastHit

Сообщение warmenzim 28 июн 2018, 17:18

Всем спасибо за советы. Буду исправляться [curved_hands]
warmenzim
UNец
 
Сообщения: 19
Зарегистрирован: 21 окт 2017, 12:12


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 26