void OnRenderObject() { #if DO_RENDER_OVERLAY_MESH // instead of relying on 'SceneCamera' string comparison, check if the hideflags match. // this could probably even just check for one bit match, since chances are that any // game view camera isn't going to have hideflags set. if ((Camera.current.gameObject.hideFlags & SceneCameraHideFlags) != SceneCameraHideFlags || Camera.current.name != "SceneCamera") { return; } if (wireframeMesh != null) { OverlayMaterial.SetFloat("_Alpha", .3f); OverlayMaterial.SetPass(0); Graphics.DrawMeshNow(wireframeMesh, transform.localToWorldMatrix); } if (vertexMesh != null) { VertexBillboardMaterial.SetPass(0); Graphics.DrawMeshNow(vertexMesh, transform.localToWorldMatrix); } #endif }
private void OnRenderImage(RenderTexture source, RenderTexture destination) { if (CheckResources() == false) { Graphics.Blit(source, destination); return; } #if UNITY_WP8 // WP8 has no OS support for rotating screen with device orientation, // so we do those transformations ourselves. if (Screen.orientation == ScreenOrientation.LandscapeLeft) { screenUv = new Vector4(0, -1, 1, 0); } if (Screen.orientation == ScreenOrientation.LandscapeRight) { screenUv = new Vector4(0, 1, -1, 0); } if (Screen.orientation == ScreenOrientation.PortraitUpsideDown) { screenUv = new Vector4(-1, 0, 0, -1); } #endif OverlayMaterial.SetVector("_UV_Transform", screenUv); OverlayMaterial.SetColor("_OverlayTintColor", TintColor); OverlayMaterial.SetTexture("_OverlayTex", OverlayTexture); Graphics.Blit(source, destination, OverlayMaterial); }
public void SetBlendMode(BlendMode blendMode) { if (blendMode == BlendMode.Normal) { OverlayMaterial.SetFloat("_IsNormalBlendMode", 1); } else { OverlayMaterial = BlendMaterials.GetMaterial(ObjectType.ScreenOverlay, blendMode: blendMode, shader: OverlayShader); OverlayMaterial.SetFloat("_IsNormalBlendMode", 0); } _blendMode = blendMode; _overlayTexture = OverlayTexture; _tintColor = TintColor; }