void Paint(Collision collision, PaintingCollision pCont)
        {
            if (brush.IsA3Dbrush(pCont.painter))
            {
                StrokeVector v = pCont.vector;
                v.posTo = transform.position;
                if (v.mouseDwn)
                {
                    v.posFrom = v.posTo;
                }
                brush.Paint(v, pCont.painter);
            }
            else
            {
                if (collision.contacts.Length > 0)
                {
                    var cp = collision.contacts[0];



                    RaycastHit hit;
                    Ray        ray = new Ray(cp.point + cp.normal * 0.1f, -cp.normal);

                    if (collision.collider.Raycast(ray, out hit, 2f))
                    {
                        StrokeVector v = pCont.vector;

                        v.uvTo = hit.textureCoord;
                        if (v.mouseDwn)
                        {
                            v.uvFrom = v.uvTo;
                        }

                        brush.Paint(pCont.vector, pCont.painter.SetTexTarget(brush));
                    }
                }
            }
        }
Esempio n. 2
0
        private void Update()
        {
            brush.Brush3D_Radius = transform.lossyScale.x * 0.7f;

            foreach (PaintingCollision col in paintingOn)
            {
                PlaytimePainter p = col.painter;
                if (brush.IsA3Dbrush(p))
                {
                    StrokeVector v = col.vector;
                    v.posTo = transform.position;
                    brush.Paint(v, p);
                }
            }
        }
Esempio n. 3
0
        void Paint()
        {
            RaycastHit hit;

            if (Physics.Raycast(new Ray(transform.position, transform.forward), out hit))
            {
                var painter = hit.transform.GetComponentInParent <PlaytimePainter>();

                if (painter != null)
                {
                    if ((painter.skinnedMeshRendy != null) && (brush.IsA3Dbrush(painter) == false))
                    {
                        painter.UpdateColliderForSkinnedMesh();

                        bool colliderDIsabled = !painter.meshCollider.enabled;
                        if (colliderDIsabled)
                        {
                            painter.meshCollider.enabled = true;
                        }


                        if (!painter.meshCollider.Raycast(new Ray(transform.position, transform.forward), out hit, 99999))
                        {
                            Debug.Log("Missed the Mesh Collider");
                            if (colliderDIsabled)
                            {
                                painter.meshCollider.enabled = false;
                            }
                            return;
                        }

                        if (colliderDIsabled)
                        {
                            painter.meshCollider.enabled = false;
                        }
                    }

                    StrokeVector v = new StrokeVector(hit, false);


                    brush.Paint(v, painter.SetTexTarget(brush));
                }
            }
        }
Esempio n. 4
0
 public PlaytimePainter Paint(PlaytimePainter painter, BrushConfig brush)
 {
     return(brush.Paint(this, painter));
 }