public static GameObject CreateDecal(Material mat, Rect uvCoords, float scale) { GameObject decal = new GameObject(); decal.name = "Decal" + decal.GetInstanceID(); decal.AddComponent <MeshFilter>().sharedMesh = DecalMesh("DecalMesh" + decal.GetInstanceID(), mat, uvCoords, scale); decal.AddComponent <MeshRenderer>().sharedMaterial = mat; qd_Decal decalComponent = decal.AddComponent <qd_Decal>(); decalComponent.SetScale(scale); decalComponent.SetTexture((Texture2D)mat.mainTexture); decalComponent.SetUVRect(uvCoords); #if DEBUG decal.AddComponent <qd_DecalDebug>(); #endif return(decal); }
public static GameObject CreateDecal(Material mat, Rect uvCoords, float scale) { GameObject decal = new GameObject(); decal.name = "Decal" + decal.GetInstanceID(); decal.AddComponent <MeshFilter>().sharedMesh = DecalMesh("DecalMesh" + decal.GetInstanceID(), mat, uvCoords, scale); decal.AddComponent <MeshRenderer>().sharedMaterial = mat; #if UNITY_5 decal.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; #else decal.GetComponent <MeshRenderer>().castShadows = false; #endif qd_Decal decalComponent = decal.AddComponent <qd_Decal>(); decalComponent.SetScale(scale); decalComponent.SetTexture((Texture2D)mat.mainTexture); decalComponent.SetUVRect(uvCoords); return(decal); }