Sie können rthis auf zwei Arten tun.
.unity eingebaute in Level of Detail (LOD) ist die erste Lösung, die Sie for.Create mehrere 3D-Modelle für diejenigen Gameobject gehen sollte. Hochdetailliertes Objekt, mittleres Detail, gering detailliertes und wirklich sehr detailliertes Polygon.
Wenn Sie weit von diesem Objekt entfernt sind, zeigt Unity nur das detailgetreue 3D-Modell an. Sobald Sie sich dem Objekt nähern, tauscht Unity das 3D-Modell automatisch gegen ein hochdetailliertes 3D-Modell aus. Dies verbessert das Gedächtnis und die Geschwindigkeit des Spiels. Um zu sehen, wie man das Google "Level of Detail Unity" einrichtet und die Videos ansieht oder Unity tutorial folgt. Es erfordert visuelle indem Renderer.enabled
zu false
.another Lösung ist, den Abstand zwischen der Kamera zu überprüfen und die Gameobject Sie mit Vector3.Distance
ausblenden möchten, dann verstecken sie durch die Renderer
deaktivieren zu verstehen.
Unten ist ein vollständiger Arbeitscode für diese Methode. Fügen Sie einfach den folgenden Code an jeder der Bäume oder Mesh, die Sie ausblenden möchten, wenn weit weg von der Kamera. Sie können die Variable distanceToAppear
an Ihre Bedürfnisse anpassen.
public class MeshMonitor : MonoBehaviour
{
Transform mainCamTransform; //Stores the FPS camera transform
private bool visible = true;
public float distanceToAppear = 8;
Renderer objRenderer;
void Start()
{
mainCamTransform = Camera.main.transform;//Get camera transform reference
objRenderer = gameObject.GetComponent<Renderer>(); //Get render reference
}
// Update is called once per frame
void Update()
{
disappearChecker();
}
void disappearChecker()
{
float distance = Vector3.Distance(mainCamTransform.position, transform.position);
//We have reached the distance to Enable Object
if (distance < distanceToAppear)
{
if (!visible)
{
objRenderer.enabled = true;// Show Object
visible = true;
Debug.Log("Visible");
}
}
else
{
if (visible)
{
objRenderer.enabled = false;// Hide Object
visible = false;
Debug.Log("InVisible");
}
}
}
}
Es ist völlig unvorstellbar, dass Sie sich um die Leistung sorgen müssen. Es ist absolut kein Problem. Beachten Sie, dass Unity * vollautomatisch * alles für Sie aussortiert. – Fattie
Obwohl das, was du sagst, wahr ist, bekommen wir immer noch einen fps um 20-40 während des Spiels. Ich teste es auf einem Z3 compact. – carlolol
warten - Bäume ?? sicherlich benutzen Sie ** Unity's Terrain-System ** - oder? Es ist unglaublich effizient. Im Wesentlichen können Sie "Ihre eigenen Bäume nicht bilden"!?!? Machst du Bäume manuell? – Fattie