- Home /
Static Level Artwork\walking behind things
I'm using Graphics.Blit( background, RenderTexture.active ) to render a static hand-drawn room in perspective with a static camera placed precisely (much like the early Resident Evil games) to show the player walking around the level in 3rd person perspective. In my artwork, there maybe an object that would hide part of the player as he walks behind it (say... a shrub). I assumed I would be able to do this with a cube object with rendering turned off or something, but to my surprise, that makes the cube completely transparent rather than obscuring the part of player that should be behind it.
Any idea how I can have a cube be basically invisible (displaying the shrub from the 2d background image) but at the same time, hide the parts of the player's model walking behind the cube to create the illusion that the player is balking behind the shrub?
Thanks in advance!
Answer by Bunny83 · Mar 16, 2011 at 11:39 PM
You will need a special shader that renders the object opaque, but without writing to the color buffer. That way you will get the depth information into the depth buffer but the background will still be visible. Also make sure that you use the correct render order:
- Background
- Invisibe cubes / planes / spheres
- Player (or other objects that should be hidden by 2.)
I've seen an example project around that uses a shader that cuts out the water plane inside a boat. I used something similar to cut the terrain at a plane.
To sum up what your shader(s) have to do:
- Maintain the render order. (See render queue)
- The invisible shader needs
ZWrite On
andColorMask 0
Your answer

Follow this Question
Related Questions
Keep background static in Unity 4.3 0 Answers
Get width and height of Image in Unity 4.6 1 Answer
Itween gradual jump 2d 1 Answer
Gameobject follow cursor 2D 0 Answers