Поменять у камеры редактора farClipPlane

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Поменять у камеры редактора farClipPlane

Сообщение Diab10 15 сен 2014, 11:05

Всем привет.
Реально ли у камеры редактора поменять farClipPlane ?
Пробовал так, не меняет:
Синтаксис:
Используется csharp
SceneView.lastActiveSceneView.camera.farClipPlane = 500f;



Гуглил... гуглил... - не гуглится :(
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Поменять у камеры редактора farClipPlane

Сообщение Diab10 16 сен 2014, 16:39

Ап (popcorn1)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 17 сен 2014, 09:11

Camera.current.
Когда мне надо было "достать" камеру сцены я использовал это.
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение lwe 17 сен 2014, 11:41

Камера и SceneView разные вещи
lwe
UNITрон
 
Сообщения: 261
Зарегистрирован: 24 авг 2014, 14:20
Skype: lawsonilka

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 17 сен 2014, 21:11

Я где то сказал что это одно и то же?
--------
Еще может быть SceneView.currentDrawingSceneView.camera
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение lwe 17 сен 2014, 21:59

OlegNick писал(а):Я где то сказал что это одно и то же?
--------
Еще может быть SceneView.currentDrawingSceneView.camera

Когда мне надо было "достать" камеру сцены я использовал это.

Camera.current - возвращает камеру сцены?
lwe
UNITрон
 
Сообщения: 261
Зарегистрирован: 24 авг 2014, 14:20
Skype: lawsonilka

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 17 сен 2014, 22:27

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
public class Test : MonoBehaviour
{

    void Start()
    {

    }

    void Update()
    {
        print(Camera.current);
    }
}
У вас нет доступа для просмотра вложений в этом сообщении.
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение lwe 17 сен 2014, 23:12

пфф... ладно забудьте.
lwe
UNITрон
 
Сообщения: 261
Зарегистрирован: 24 авг 2014, 14:20
Skype: lawsonilka

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 17 сен 2014, 23:53

lwe писал(а):пфф...

Ну да, согласен, весомый аргумент.
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение lwe 18 сен 2014, 01:05

OlegNick писал(а):
lwe писал(а):пфф...

Ну да, согласен, весомый аргумент.

Тогда объясните мне как вы собираетесь управлять SceneView через камеру.
lwe
UNITрон
 
Сообщения: 261
Зарегистрирован: 24 авг 2014, 14:20
Skype: lawsonilka

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 18 сен 2014, 10:58

Зачем мне ей управлять если ТС просто нужна ссылка на камеру сцены чтобы поменять в ней одну переменную.
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение waruiyume 18 сен 2014, 19:23

Меня смутил этот спор и я решил посмотреть сам. Так вот, камеру то, мы получить можем, а вот, изменить её параметры, нет. Логично было бы предположить, что настройки камеры затираются SceneView`ом. Следовательно, нужно изменять настройки камеры, только после того, как отработает SceneView. А вот, как определить этот момент, я не знаю.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Поменять у камеры редактора farClipPlane

Сообщение Diab10 18 сен 2014, 20:12

Наверно этого сделать нельзя, жаль :(
Всем спасибо за помощь :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Поменять у камеры редактора farClipPlane

Сообщение OlegNick 18 сен 2014, 20:13

Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;

[CustomEditor(typeof(SomeScript))]
public class SomeScriptEditor : Editor
{
    void OnSceneGUI()
    {
        SceneView.currentDrawingSceneView.camera.nearClipPlane = 1000f;
    }
}

По скрину видно, что nearClipPlane изменился, но он сработал только на маркер поворота(не знаю как назвать).
У вас нет доступа для просмотра вложений в этом сообщении.
Усложнять - просто, упрощать - сложно.
OlegNick
Старожил
 
Сообщения: 585
Зарегистрирован: 10 ноя 2013, 02:21
Откуда: Россия, Калуга

Re: Поменять у камеры редактора farClipPlane

Сообщение Neyl 18 сен 2014, 21:27

В 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();
        }
    }
}
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

След.

Вернуться в Editor

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

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