Страница 1 из 1

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

СообщениеДобавлено: 20 апр 2013, 15:32
vessen
Суть проблемы: есть камера,которая выводит изображение в отдельный 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 указать просто число, то все работает. В чем может быть косяк???

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

СообщениеДобавлено: 20 апр 2013, 21:23
AMD
Могу предложить попробовать сначала объявить пустой рект (Rect()), а уже в методе старт задать его размер так же, если не удастся попробуйте вместо Screen.height-200 написать переменную типа флоат, и в ней считать нужное Вам. И попробуйте проверить с помощью дебага, считается ли число вообще

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

СообщениеДобавлено: 21 апр 2013, 09:05
vessen
Попробовал вот так

Синтаксис:
Используется 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 считается правильно. Не могу понять,должно же работать???

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

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

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

СообщениеДобавлено: 21 апр 2013, 09:38
vessen
Спасибо, помогло. :ymapplause:
А я подумал,что и координаты в пикселях,раз называется pixelRect )))

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

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

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

СообщениеДобавлено: 21 апр 2013, 10:16
vessen
Рано обрадовался, этот способ тупо по y перемещает окно вниз экрана. ((( Что за дребедень???

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

СообщениеДобавлено: 21 апр 2013, 10:29
groove123
Ну так и должно быть. А что вам именно нужно? :)

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

СообщениеДобавлено: 21 апр 2013, 10:54
vessen
Необходим вывод изображения с камеры в окно в любом месте экрана. Вывод в текстуру сделать не могу, т.к. имею версию Free.

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

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

Что - то вроде, screen.height*0.5f = 0.5f...