Дистанция камеры

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

Дистанция камеры

Сообщение infernno 31 июл 2013, 10:19

Всем привет,использую вот такой вот скрипт для вращения камеры вокруг ГО:
Синтаксис:
Используется javascript
var target : Transform;
var distance = 10.0;
var maxdistance = 10.0;
var mindistance = 10.0;
 
private var xSpeed = 950.0;
private var ySpeed = 950.0;
 
private var x = 0.0;
private var y = 0.0;
 
private var currentX = 0.0;
private var currentY = 0.0;
 
function Start () {
    var angles = transform.eulerAngles;
    x = angles.y;
    y = angles.x;
}

function LateUpdate () {

    if (target) {
 
                //Pinch Gesture        
        if (Input.touchCount >= 2){
                var touch0 = Input.GetTouch(0);
                        var touch1 = Input.GetTouch(1);
               
                var curDist = touch0.position - touch1.position;
                var prevDist = (touch0.position - touch0.deltaPosition) - (touch1.position - touch1.deltaPosition);
               
                var delta = (curDist.magnitude - prevDist.magnitude)/10;
                distance -= delta;

                if(distance>maxdistance)
                        distance=maxdistance;
                if(distance<mindistance)
                        distance=mindistance;
                       
        //Pan Gesture          
                } else if (Input.touchCount == 1){
 
                        //Touch Moved
                        if (Input.GetTouch(0).phase==TouchPhase.Moved){
                                var xDelta = (Input.touches[0].deltaPosition.x * xSpeed * Time.deltaTime)/100;
                                var yDelta = (Input.touches[0].deltaPosition.y * ySpeed * Time.deltaTime)/100;
 
                                x += xDelta;
                                y -= yDelta;
                        }
                }
 
                //Update View
                var rotation = Quaternion.Euler(y, x, 0);
        var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
       
        transform.rotation = rotation;
        transform.position = position;
       
    }
}

А теперь проблема,у меня есть несколько объектов и величина их разная. При переключении например с объекта с маленькой величиной на большой,камера оказывается внутри объекта (т.е. по сути сохраняет дистанцию с прошлого объекта). А условие:
Синтаксис:
Используется javascript
                if(distance>maxdistance)
                        distance=maxdistance;
                if(distance<mindistance)
                        distance=mindistance;
 

работает только когда юзер прикасается к экрану,и тогда камера ставится на нужную позицию и объект виден,а нужно чтобы при переключении дистанция выставлялась сразу.
infernno
UNец
 
Сообщения: 14
Зарегистрирован: 27 ноя 2012, 09:30

Re: Дистанция камеры

Сообщение Alexey191295 31 июл 2013, 11:02

Поставьте условие над этой строкой:
Синтаксис:
Используется javascript
var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
Windows Phone: Rubik's Cube Planet Wars
Alexey191295
UNITрон
 
Сообщения: 182
Зарегистрирован: 13 ноя 2011, 13:04
Skype: Alexey191295

Re: Дистанция камеры

Сообщение infernno 31 июл 2013, 13:34

Alexey191295,спасибо,помогло! :D
infernno
UNец
 
Сообщения: 14
Зарегистрирован: 27 ноя 2012, 09:30


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

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

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