Files
2026-03-04 10:03:45 +08:00

46 lines
868 B
C#

using UnityEngine;
namespace Es.InkPainter.Sample
{
[RequireComponent(typeof(Collider), typeof(MeshRenderer))]
public class CollisionPainter : MonoBehaviour
{
[SerializeField]
private Brush brush;
[SerializeField]
private int wait = 3;
private int waitCount;
public void Awake()
{
GetComponent<MeshRenderer>().material.color = brush.Color;
}
public void FixedUpdate()
{
waitCount++;
}
public void OnCollisionStay(Collision collision)
{
if (waitCount < wait)
{
return;
}
waitCount = 0;
ContactPoint[] contacts = collision.contacts;
for (int i = 0; i < contacts.Length; i++)
{
ContactPoint contactPoint = contacts[i];
InkCanvas component = contactPoint.otherCollider.GetComponent<InkCanvas>();
if (component != null)
{
component.Paint(brush, contactPoint.point);
}
}
}
}
}