Kursach_StealthAction/Assets/Scripts/ImpactWave.cs

41 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
public class ImpactWave : MonoBehaviour
{
[Header("Настройки эхолокации")]
[Tooltip("Минимальная сила удара, при которой появится волна")]
public float minImpactForce = 2f;
[Tooltip("Префаб звуковой волны (или источника света)")]
public GameObject wavePrefab;
private void OnCollisionEnter(Collision collision)
{
// Эта строчка выведет сообщение красным текстом в консоль Unity при любом касании
Debug.Log("УДАР! Сила: " + collision.relativeVelocity.magnitude);
if (collision.relativeVelocity.magnitude >= minImpactForce && wavePrefab != null)
{
Instantiate(wavePrefab, collision.contacts[0].point, Quaternion.identity);
}
// Считаем силу, с которой предмет врезался в препятствие
float impactForce = collision.relativeVelocity.magnitude;
if (impactForce >= minImpactForce)
{
// Берем конкретную точку в пространстве, где произошло касание
ContactPoint contact = collision.contacts[0];
// Если префаб назначен, создаем его в точке удара
if (wavePrefab != null)
{
Instantiate(wavePrefab, contact.point, Quaternion.identity);
}
// Подсказка: если у предмета есть компонент AudioSource,
// здесь можно вызывать звук падения, громкость которого зависит от impactForce
}
}
}