Make everything above the floor my player is standing invisible when my camera cant see my character
Hello everyone, i've been trying to figure this out for the past 2 days, and i cant get it done. So i want to make everything above the floor my player is standing invisible when the view of him is blocked by it, So far all i could think of is raycasting from my camera to my player position (Camera is attached to the player), and if the ray collides with anything besides the player, it will enabled false that gameobject.
This is the script so far:
using UnityEngine; using System.Collections;
public class LevelColliderCheck : MonoBehaviour {
void Start () {
}
void Update()
{
var player = GameObject.FindGameObjectWithTag("Player");
if ((Input.GetKeyDown(KeyCode.UpArrow)) || (Input.GetKeyDown(KeyCode.DownArrow)) || (Input.GetKeyDown(KeyCode.LeftArrow)) || (Input.GetKeyDown(KeyCode.RightArrow))) //UpArrow || KeyCode.DownArrow || KeyCode.LeftArrow || KeyCode.RightArrow))
{
RaycastHit hitInfo = new RaycastHit();
bool hit = Physics.Raycast(transform.position, player.transform.position, 1000.0f);
if (hit)
{
if (hitInfo.collider.gameObject.tag != "Player")
{
hitInfo.transform.gameObject.SetActive (false);
}
}
}
}
}
this is not working at all, i dont know what im doing wrong. Also, i'm thinking that even if i make it work, it wont make invisible the second floors of all my gameobjects, just the one gameobject the ray is colliding with.
Your answer
Follow this Question
Related Questions
How can I raycast gameobjects with specific layer ? 1 Answer
Raycast hitting layer explicitly told to ignore (and doesn't even have collider!) 1 Answer
How can I make my Raycast ignore my player, but have other player's Raycasts be able to hit it? 1 Answer
Gameobject turned invisible because of fog 1 Answer
How to make a user layer ignore raycasts of OnMouse* events? 1 Answer