Дистанция слоев отрисовки камеры

Инструменты для разработки

Дистанция слоев отрисовки камеры

Сообщение jetyb 14 мар 2014, 10:46

Раздражает, что в стандартном инспекторе камеры нельзя редактировать дальность отрисовки для каждого слоя, а ведь это один из столпов оптимизации.
Написал простенький скрипт решающий эту проблему. Кидаем в папку 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;
                        }
                }
               
    }  
}
 
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Вернуться в Инструментарий

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2