Files
CartoonRPG/Library/PackageCache/com.unity.visualeffectgraph@2973a8ac1070/Runtime/Utilities/EventBinding/Implementation/VFXRigidBodyCollisionEventBinder.cs
Caleb Sandford deQuincey 02c4b5ab66 Adding in new packages
2025-06-05 22:59:18 +01:00

33 lines
991 B
C#

#if VFX_HAS_PHYSICS
using System.Collections;
using System.Collections.Generic;
namespace UnityEngine.VFX.Utility
{
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(Collider))]
class VFXRigidBodyCollisionEventBinder : VFXEventBinderBase
{
private ExposedProperty positionParameter = "position";
private ExposedProperty directionParameter = "velocity";
protected override void SetEventAttribute(object[] parameters)
{
ContactPoint contact = (ContactPoint)parameters[0];
eventAttribute.SetVector3(positionParameter, contact.point);
eventAttribute.SetVector3(directionParameter, contact.normal);
}
void OnCollisionEnter(Collision collision)
{
// Debug-draw all contact points and normals
foreach (ContactPoint contact in collision.contacts)
{
SendEventToVisualEffect(contact);
}
}
}
}
#endif