Слежение камерой за объектом

Общие вопросы о Unity3D

Слежение камерой за объектом

Сообщение mepihin 22 ноя 2013, 15:27

Всем привет. Подскажите пожалуйста, как сделать автоматический подъем камеры, если игрок находится выше обзора камеры, то есть вышел за верхний предел. Например такая вещь была в Doodle Jump. Мне не надо делать постоянное слежение, это я и так могу, а надо лишь когда игрок покинул обзор. Размер экрана игры - 480 на 320
Аватара пользователя
mepihin
UNIверсал
 
Сообщения: 418
Зарегистрирован: 01 янв 2013, 20:58
Откуда: Россия - Москва
Skype: live:snukler

Re: Слежение камерой за объектом

Сообщение Левш@ 22 ноя 2013, 16:51

_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Слежение камерой за объектом

Сообщение mepihin 23 ноя 2013, 13:02

Левш@ писал(а):Renderer.IsVisible
http://docs.unity3d.com/Documentation/S ... sible.html


Такая проблема: лифт уезжает за экран, а мне надо сделать так, чтобы камера сдвинулась так, чтобы лифт был виден полностью.
Синтаксис:
Используется csharp
        void Update () {
                if (renderer.isVisible) {
                        Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y + 20, Camera.main.transform.position.z);
                }
        }


Не получается так. И false ставил, постоянно камера передвигается вверх. Как сделать так, чтобы камера следовала за лифтом тогда, если хоть малая часть лифта не видна?
Аватара пользователя
mepihin
UNIверсал
 
Сообщения: 418
Зарегистрирован: 01 янв 2013, 20:58
Откуда: Россия - Москва
Skype: live:snukler

Re: Слежение камерой за объектом

Сообщение Левш@ 23 ноя 2013, 14:03

Тогда меряй угол между camera.transform.forward и вектором камера - лифт.
Синтаксис:
Используется javascript
var angleLuft : float = 30f;
var spd : float = 1f;
var lift : Transform;
var cam : Transform;

function Update () {
        var myAngle : float = Vector3.Angle(cam.forward, lift.position - cam.position)
    if (myAngle > angleLuft)  
        cam.position.y = Mathf.Lerp(cam.position.y, lift.position.y, Time.deltaTime * spd);
}
 
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Слежение камерой за объектом

Сообщение mepihin 23 ноя 2013, 15:31

Левш@ писал(а):Тогда меряй угол между camera.transform.forward и вектором камера - лифт.
Синтаксис:
Используется javascript
var angleLuft : float = 30f;
var spd : float = 1f;
var lift : Transform;
var cam : Transform;

function Update () {
        var myAngle : float = Vector3.Angle(cam.forward, lift.position - cam.position)
    if (myAngle > angleLuft)  
        cam.position.y = Mathf.Lerp(cam.position.y, lift.position.y, Time.deltaTime * spd);
}
 


Спасибо, помогло.
Аватара пользователя
mepihin
UNIверсал
 
Сообщения: 418
Зарегистрирован: 01 янв 2013, 20:58
Откуда: Россия - Москва
Skype: live:snukler


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: GameWorld, infocratia и гости: 17