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); }
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(); }
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(); }
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); }
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); }
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); } }