File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
using UnityEngine;
[AddComponentMenu("Dynamic Bone/Dynamic Bone Plane Collider")]
public class DynamicBonePlaneCollider : DynamicBoneColliderBase
{
void OnValidate()
{
}
public override bool Collide(ref Vector3 particlePosition, float particleRadius)
{
Vector3 normal = Vector3.up;
switch (m_Direction)
{
case Direction.X:
normal = transform.right;
break;
case Direction.Y:
normal = transform.up;
break;
case Direction.Z:
normal = transform.forward;
break;
}
Vector3 p = transform.TransformPoint(m_Center);
Plane plane = new Plane(normal, p);
float d = plane.GetDistanceToPoint(particlePosition);
if (m_Bound == Bound.Outside)
{
if (d < 0)
{
particlePosition -= normal * d;
return true;
}
}
else
{
if (d > 0)
{
particlePosition -= normal * d;
return true;
}
}
return false;
}
void OnDrawGizmosSelected()
{
if (!enabled)
return;
if (m_Bound == Bound.Outside)
Gizmos.color = Color.yellow;
else
Gizmos.color = Color.magenta;
Vector3 normal = Vector3.up;
switch (m_Direction)
{
case Direction.X:
normal = transform.right;
break;
case Direction.Y:
normal = transform.up;
break;
case Direction.Z:
normal = transform.forward;
break;
}
Vector3 p = transform.TransformPoint(m_Center);
Gizmos.DrawLine(p, p + normal);
}
}