Поменять у камеры редактора farClipPlane
Добавлено:
15 сен 2014, 11:05
Diab10
Всем привет.
Реально ли у камеры редактора поменять farClipPlane ?
Пробовал так, не меняет:
Используется csharp
SceneView.lastActiveSceneView.camera.farClipPlane = 500f;
Гуглил... гуглил... - не гуглится
Re: Поменять у камеры редактора farClipPlane
Добавлено:
17 сен 2014, 09:11
OlegNick
Camera.current.
Когда мне надо было "достать" камеру сцены я использовал это.
Re: Поменять у камеры редактора farClipPlane
Добавлено:
17 сен 2014, 11:41
lwe
Камера и SceneView разные вещи
Re: Поменять у камеры редактора farClipPlane
Добавлено:
17 сен 2014, 21:11
OlegNick
Я где то сказал что это одно и то же?
--------
Еще может быть SceneView.currentDrawingSceneView.camera
Re: Поменять у камеры редактора farClipPlane
Добавлено:
17 сен 2014, 21:59
lwe
OlegNick писал(а):Я где то сказал что это одно и то же?
--------
Еще может быть SceneView.currentDrawingSceneView.camera
Когда мне надо было "достать" камеру сцены я использовал это.
Camera.current - возвращает камеру сцены?
Re: Поменять у камеры редактора farClipPlane
Добавлено:
17 сен 2014, 23:53
OlegNick
lwe писал(а):пфф...
Ну да, согласен, весомый аргумент.
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 01:05
lwe
OlegNick писал(а):lwe писал(а):пфф...
Ну да, согласен, весомый аргумент.
Тогда объясните мне как вы собираетесь управлять SceneView через камеру.
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 10:58
OlegNick
Зачем мне ей управлять если ТС просто нужна ссылка на камеру сцены чтобы поменять в ней одну переменную.
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 19:23
waruiyume
Меня смутил этот спор и я решил посмотреть сам. Так вот, камеру то, мы получить можем, а вот, изменить её параметры, нет. Логично было бы предположить, что настройки камеры затираются SceneView`ом. Следовательно, нужно изменять настройки камеры, только после того, как отработает SceneView. А вот, как определить этот момент, я не знаю.
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 20:12
Diab10
Наверно этого сделать нельзя, жаль
Всем спасибо за помощь
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 20:13
OlegNick
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;
[CustomEditor(typeof(SomeScript))]
public class SomeScriptEditor : Editor
{
void OnSceneGUI()
{
SceneView.currentDrawingSceneView.camera.nearClipPlane = 1000f;
}
}
По скрину видно, что nearClipPlane изменился, но он сработал только на маркер поворота(не знаю как назвать).
Re: Поменять у камеры редактора farClipPlane
Добавлено:
18 сен 2014, 21:27
Neyl
В Editor есть недокументированный метод OnPreSceneGUI, он вызывается после задания настроек камеры, но до рендера сцены.
Используется csharp
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(SomeScript))]
public class SomeScriptEditor : Editor
{
private float m_nearClipPlane = 0.05f;
private float m_farClipPlane = 1000f;
void OnPreSceneGUI()
{
if (SceneView.currentDrawingSceneView != null && SceneView.currentDrawingSceneView.camera !=null)
{
SceneView.currentDrawingSceneView.camera.nearClipPlane = m_nearClipPlane;
SceneView.currentDrawingSceneView.camera.farClipPlane = m_farClipPlane;
}
}
public override void OnInspectorGUI()
{
m_nearClipPlane = EditorGUILayout.FloatField("Near clip plane", m_nearClipPlane);
m_farClipPlane = EditorGUILayout.FloatField("Far clip plane", m_farClipPlane);
if(GUI.changed && SceneView.currentDrawingSceneView != null)
{
SceneView.currentDrawingSceneView.Repaint();
}
}
}