Дистанция слоев отрисовки камеры
Добавлено: 14 мар 2014, 10:46
Раздражает, что в стандартном инспекторе камеры нельзя редактировать дальность отрисовки для каждого слоя, а ведь это один из столпов оптимизации.
Написал простенький скрипт решающий эту проблему. Кидаем в папку Editor.
Написал простенький скрипт решающий эту проблему. Кидаем в папку Editor.
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;
[CustomEditor(typeof(Camera))]
public class CameraEditor : Editor
{
private bool _editCullDistances;
public override void OnInspectorGUI() {
base.OnInspectorGUI();
if(target is Camera)
{
Camera cam = (Camera) target;
float[] cullDistances = cam.layerCullDistances;
_editCullDistances = GUILayout.Toggle(_editCullDistances, "Edit Cull Distances");
if(_editCullDistances)
{
for(int i =0; i < cullDistances.Length; i++)
{
cullDistances[i] = EditorGUILayout.FloatField(i + " : " + LayerMask.LayerToName(i), cullDistances[i]);
}
cam.layerCullDistances = cullDistances;
}
}
}
}
using UnityEditor;
using System.Collections;
[CustomEditor(typeof(Camera))]
public class CameraEditor : Editor
{
private bool _editCullDistances;
public override void OnInspectorGUI() {
base.OnInspectorGUI();
if(target is Camera)
{
Camera cam = (Camera) target;
float[] cullDistances = cam.layerCullDistances;
_editCullDistances = GUILayout.Toggle(_editCullDistances, "Edit Cull Distances");
if(_editCullDistances)
{
for(int i =0; i < cullDistances.Length; i++)
{
cullDistances[i] = EditorGUILayout.FloatField(i + " : " + LayerMask.LayerToName(i), cullDistances[i]);
}
cam.layerCullDistances = cullDistances;
}
}
}
}