Jump to content
UnitySpain
Sign in to follow this  
Jorge Alejandro

Como detectar si un objeto esta siendo renderizado por una camara especifica

Recommended Posts

Cuando quiero saber si un objeto esta siendo renderizado por una camera en especifico uso este script que saque de la UnityWiki:

using UnityEngine;
 
public static class RendererExtensions
{
    public static bool IsVisibleFrom(this Renderer renderer, Camera camera)
    {
        Plane[] planes = GeometryUtility.CalculateFrustumPlanes(camera);
        return GeometryUtility.TestPlanesAABB(planes, renderer.bounds);
    }
}

el gran problema de este codigo es que aunque el objeto (que deseo saber si se esta renderizando por una camara) esta atras de otro, y no se ve,este codigo me debuelve que la camara si lo esta viendo.

Share this post


Link to post
Share on other sites

Utilizando el evento OnWillRenderObject:

using UnityEngine;
using System.Collections.Generic;

public class script2 : MonoBehaviour {

	public string[] nombreCamaras;

	List<string> camaras = new List<string>();

	void Update(){

		this.nombreCamaras = this.camaras.ToArray();
		this.camaras.Clear();

	}

	void OnWillRenderObject() {

		this.camaras.Add(Camera.current.name);

	}


}

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...