RPG Camera with walls

Hi, everybody. I do game for mobile devices. I have a character, a maze and the camera (3rd person camera). The camera follows the character, but doesn’t rotate. There are situations when the character is behind a wall of a maze and it it isn’t visible. Whether there is any correct method of implementation of the camera (without approaching it to the character) that it was possible to see the character always? Maybe it is possible to show somehow a contour of the character if it stands behind a wall? Or can it is necessary do something other? Thanks in advance for the help.

If you have the walls of the maze split up into sections, you can use a raycast to fire from the camera to the player and if it hits a wall (tagged as wall), you can set that section of wall to be invisible.

///Add this script to camera (JavaScript)

#pragma strict

var target : Transform; // Your player

var hiddenWall : Transform; // The last wall we hid

function FixedUpdate(){ //physics is best done on fixedupdate

	var rayHit : RaycastHit; // what our ray hit
	
	if(Physics.Raycast(transform.position, target.position - transform.position, rayHit)){ //shoot a ray from camera to player
	
		if(rayHit.collider.transform.tag == "wall"){ // if the ray hit a wall
			
			if(hiddenWall == null || hiddenWall == rayHit.collider.transform){ // if we are hitting a wall after not OR if the wall is the same as the last one we hit
			
				hiddenWall = rayHit.collider.transform; // set our hiddenwall to the one we hit
			
				hiddenWall.renderer.enabled = false; // hide that wall
			}
			
			else{ // otherwise (if we have hit a wall that isn't the same as the last wall we hit)
			
				hiddenWall.renderer.enabled = true; // make the last wall visible
				
				hiddenWall = rayHit.collider.transform; // // set our hiddenwall to the one we hit
			
				hiddenWall.renderer.enabled = false; // hide that wall
			}
		}
		
		else{ // we arent hitting a wall.. so...
		
			if(hiddenWall){ // if we just stopped hitting a wall
			
				hiddenWall.renderer.enabled = true; // make the last wall visible
				
				hiddenWall = null; // we aren't hitting a wall anymore
			}
		}
	}
}

I hope that makes sense, and more importantly works and works how you want it to!(It’s untested)