Tanoda
CollisionPainter.cs
Go to the documentation of this file.
1using UnityEngine;
2
4{
5 [RequireComponent(typeof(Collider), typeof(MeshRenderer))]
6 public class CollisionPainter : MonoBehaviour
7 {
8 [SerializeField] private Brush brush;
9
10 [SerializeField] private int wait = 3;
11
12 private int waitCount;
13
14 public void Awake()
15 {
16 GetComponent<MeshRenderer>().material.color = brush.Color;
17 }
18
19 public void FixedUpdate()
20 {
21 ++waitCount;
22 }
23
24 public void OnCollisionStay(Collision collision)
25 {
26 if (waitCount < wait)
27 return;
28 waitCount = 0;
29
30 foreach (var p in collision.contacts)
31 {
32 var canvas = p.otherCollider.GetComponent<InkCanvas>();
33 if (canvas != null)
34 canvas.Paint(brush, p.point);
35 }
36 }
37 }
38}
Class managing brush information.
Definition: Brush.cs:11
Color Color
The color of the brush.
Definition: Brush.cs:197
Texture paint to canvas. To set the per-material.
Definition: InkCanvas.cs:23
bool Paint(Brush brush, Vector3 worldPos, Func< PaintSet, bool > materialSelector=null, Camera renderCamera=null)
Paint processing that use world-space surface position.
Definition: InkCanvas.cs:793
void OnCollisionStay(Collision collision)