Files
ScienceLab.GravityForce/Assets/Materials/Scripts/WallHitParticles.cs
2026-03-17 13:40:09 +02:00

43 lines
1.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WallHitParticles : MonoBehaviour
{
[SerializeField] private GameObject hitParticlesPrefab;
[SerializeField] private float minHitSpeed = 2f;
[SerializeField] private float destroyDelay = 2f;
private Rigidbody _rb;
private bool _hasHit = false;
private void Start()
{
_rb = GetComponent<Rigidbody>();
}
private void OnCollisionEnter(Collision collision)
{
if (_hasHit)
return;
if (collision.gameObject.CompareTag("Wall") == false)
return;
if (_rb.velocity.magnitude < minHitSpeed)
return;
_hasHit = true;
Vector3 hitPoint = collision.contacts[0].point;
Quaternion hitRotation =
Quaternion.LookRotation(collision.contacts[0].normal);
GameObject particles =
Instantiate(hitParticlesPrefab, hitPoint, hitRotation);
Destroy(particles, destroyDelay);
}
}