Звук шагов с помощью RaycastHit
Добавлено: 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);
}
}
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);
}
}