Проблемка с камерами

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Проблемка с камерами

Сообщение vessen 20 апр 2013, 15:32

Суть проблемы: есть камера,которая выводит изображение в отдельный Viewport на экране,нужно подогнать координаты Viewport'а под разрешение экрана. Юзаю такой скрипт

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

public class CamRectView : MonoBehaviour {
       
        Rect r = new Rect(0,Screen.height-200, 200, 200);
        // Use this for initialization
        void Start () {
        transform.camera.pixelRect = r;
        Debug.Log(r);
        }
       
        // Update is called once per frame
        void Update () {
       
        }
}


и выводит он Viewport в нулевых координатах экрана,хотя так не должно быть.
Если вместо Screen.height-200 указать просто число, то все работает. В чем может быть косяк???
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение AMD 20 апр 2013, 21:23

Могу предложить попробовать сначала объявить пустой рект (Rect()), а уже в методе старт задать его размер так же, если не удастся попробуйте вместо Screen.height-200 написать переменную типа флоат, и в ней считать нужное Вам. И попробуйте проверить с помощью дебага, считается ли число вообще
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Проблемка с камерами

Сообщение vessen 21 апр 2013, 09:05

Попробовал вот так

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

public class CamRectView : MonoBehaviour {
       
        Rect r ;
        float y;
        // Use this for initialization
        void Start () {
        y = Screen.height-200; 
        r = new Rect(0,y, 200, 200);   
        transform.camera.pixelRect = r;
        Debug.Log(y);
        }
       
        // Update is called once per frame
        void Update () {
       
        }
}
 


ничего не изменилось... Y считается правильно. Не могу понять,должно же работать???
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение groove123 21 апр 2013, 09:28

Ну насколько я знаю, то pixelRect принимает значение от 0 до 1. Может стоит попробывать так:
Синтаксис:
Используется csharp
transform.camera.pixelRect = new Rect(0,(Screen.height-200)/Screen.height, 200, 200);
 
groove123
UNец
 
Сообщения: 19
Зарегистрирован: 20 апр 2013, 21:00

Re: Проблемка с камерами

Сообщение vessen 21 апр 2013, 09:38

Спасибо, помогло. :ymapplause:
А я подумал,что и координаты в пикселях,раз называется pixelRect )))
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение vessen 21 апр 2013, 09:43

Интересно эта функция работает. Когда задаешь просто числовое значение, не через переменные,то принимает в пикселях. Через переменную только 0..1. Сейчас проверил,удивился )))
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение vessen 21 апр 2013, 10:16

Рано обрадовался, этот способ тупо по y перемещает окно вниз экрана. ((( Что за дребедень???
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение groove123 21 апр 2013, 10:29

Ну так и должно быть. А что вам именно нужно? :)
groove123
UNец
 
Сообщения: 19
Зарегистрирован: 20 апр 2013, 21:00

Re: Проблемка с камерами

Сообщение vessen 21 апр 2013, 10:54

Необходим вывод изображения с камеры в окно в любом месте экрана. Вывод в текстуру сделать не могу, т.к. имею версию Free.
vessen
UNIт
 
Сообщения: 57
Зарегистрирован: 20 мар 2013, 22:24

Re: Проблемка с камерами

Сообщение AMD 21 апр 2013, 12:07

Не уверен, но кажется Вам надо задавать положение используя промежуток от 0 до 1 (по х и у), где, видимо, 0,0 девый верхний угол, а 1,1 - нижний правый, то есть если вы сможете сделать формулу которая считала бы положение на экране (относительно размера "монитора"), а после переводило бы в этот промежуток...

Что - то вроде, screen.height*0.5f = 0.5f...
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Google [Bot] и гости: 23