Ejemplo n.º 1
0
        public void AddDecalQuad(DecalDefinition decalDefinition, Vector3 direction, Vector3 point, float size, float angle)
        {
            // set globals
            DecalBuilder.SetUp(DecalType.Quad,
                               gameObject,
                               ref vertices,
                               ref triangles,
                               decalDefinition,
                               direction,
                               point,
                               size,
                               angle,
                               -1,
                               0,
                               1);

            Process(true);
        }
Ejemplo n.º 2
0
        public void AddDecal(DecalDefinition decalDefinition, Vector3 direction, Vector3 point)
        {
            // set globals
            DecalBuilder.SetUp(decType,
                               gameObject,
                               ref vertices,
                               ref triangles,
                               decalDefinition,
                               direction,
                               point,
                               decalDefinition.size,
                               decalDefinition.randomAngle ? Random.Range(0, 360) : decalDefinition.angle,
                               decalDefinition.normalFactor,
                               decalDefinition.pointOffset,
                               decalDefinition.depth);

            Process();
        }
Ejemplo n.º 3
0
        public void AddDecal(DecalDefinition decalDefinition, Vector3 direction, Vector3 point, float size, float angle, float normalFactor = 0, float pointBackwardOffset = 0.25f, float depth = 1)
        {
            // set globals
            DecalBuilder.SetUp(decType,
                               gameObject,
                               ref vertices,
                               ref triangles,
                               decalDefinition,
                               direction,
                               point,
                               size,
                               angle,
                               normalFactor,
                               pointBackwardOffset,
                               depth);

            Process();
        }
Ejemplo n.º 4
0
        public void AddDecalQuad(DecalDefinition decalDefinition, Vector3 direction, Vector3 point)
        {
            // set globals
            DecalBuilder.SetUp(DecalType.Quad,
                               gameObject,
                               ref vertices,
                               ref triangles,
                               decalDefinition,
                               direction,
                               point,
                               decalDefinition.size,
                               decalDefinition.randomAngle ? Random.Range(0, 360) : decalDefinition.angle,
                               -1,
                               0,
                               1);

            Process(true);
        }
Ejemplo n.º 5
0
        public void Init(DecalDefinition decalDef, DecalType decType, GameObject affectedObj)
        {
            decalT = decType;
            if (decalT == DecalType.Skinned)
            {
                smr = gameObject.AddComponent <SkinnedMeshRenderer>();
                if (affectedObj)
                {
                    smr.rootBone       = affectedObj.GetComponent <SkinnedMeshRenderer>().rootBone;
                    smr.bones          = affectedObj.GetComponent <SkinnedMeshRenderer>().bones;
                    smr.sharedMaterial = decalDef.material;
                }
            }
            else
            {
                mf = gameObject.AddComponent <MeshFilter>();
                mr = gameObject.AddComponent <MeshRenderer>();
                mr.sharedMaterial = decalDef.material;
            }

            oldScale        = transform.localScale;
            decalDefinition = decalDef;
            SetScale(decalDefinition.size);
        }
Ejemplo n.º 6
0
        public static void SetUp(DecalType decType, GameObject targetObj, ref Vector3[] verts, ref int[] tris, DecalDefinition decalDef, Vector3 dir, Vector3 p, float si, float ang, float normFac, float pBack, float de)
        {
            // builder vars
            affectedObject      = targetObj;
            vertices            = verts;
            triangles           = tris;
            direction           = dir;
            point               = p;
            size                = si;
            angle               = ang;
            normalFactor        = normFac;
            pointBackwardOffset = pBack;
            depth               = de;

            // create decal GO
            GameObject decalGO = new GameObject("decalSkinned");

            decalGO.transform.parent = affectedObject.transform;

            // create decal component
            decal = decalGO.AddComponent <Decal>();
            decal.Init(decalDef, decType, affectedObject);

            if (decType == DecalType.Skinned)
            {
                CalculateMatrixAndPlanes();
                decalGO.transform.localPosition = Vector3.zero;
                decalGO.transform.localRotation = Quaternion.identity;
                decalGO.transform.localScale    = Vector3.one;
            }
            else
            {
                decalGO.transform.position = point;
                decalGO.transform.rotation = Quaternion.LookRotation(direction, Vector3.up) * Quaternion.Euler(0, 0, angle);
            }
        }