Как настроить камеру в игре Unity 3D Horse Racing

Я создаю игру о скачках в Unity3D, у меня проблема с камерой: в настоящее время моя камера фокусируется только на одной фиксированной лошади (например, лошадь № 1), поэтому, когда эта лошадь находится далеко от других, будет только на экране появилась одна лошадь, это не лучшее решение. У кого-нибудь есть идеи по этому поводу? Спасибо,


person Bruce Vo    schedule 01.07.2014    source источник
comment
Здесь много вопросов по этому поводу, но на самом деле это не вопрос программирования. Вы спрашиваете логику, как реализовать эту систему камер. Вам нужно придумать нужные вам правила, а затем вы попытаетесь реализовать код. Только на этом этапе мы можем попытаться помочь вам, если у вас возникнут проблемы. Могут быть лучшие альтернативные места, чтобы задать этот вопрос как есть, например gamedev.stackexchange.com   -  person anothershrubery    schedule 01.07.2014
comment
Наивное решение для одной камеры: найдите ограничивающую рамку всех лошадей, наведите камеру на ее середину и отрегулируйте масштаб так, чтобы были видны все лошади.   -  person RichieHindle    schedule 01.07.2014
comment
Спасибо за всех, Привет, Ричи Хиндл, не могли бы вы научить меня тому, как я могу найти границы всех лошадей?   -  person Bruce Vo    schedule 01.07.2014
comment
@BruceVo: Нет, здесь нет в комментариях. :-) Это четко определенная концепция - иди и поищи.   -  person RichieHindle    schedule 01.07.2014
comment
@RichieHindle: Большое спасибо, я узнаю об этом.   -  person Bruce Vo    schedule 02.07.2014


Ответы (1)


Вы можете думать так, как снимали фильм: просто поместите больше камер на сцену и активируйте их по очереди. Если вам нужна камера для каждой лошади, вы можете поместить камеру прямо в сборный дом лошади (при условии, что она у вас есть), чтобы у каждой вновь созданной лошади был один из них. Затем вы можете написать функцию, разрешающую переключение камер:

var cameras : GameObject[];

function SelectCamera (index : int) {
    for (var i : int = 0; i < cameras.length; i++) {
        if (i == index){
            cameras[i].camera.active = true;
        }else{
            cameras[i].camera.active = false;
        }   
    }
}
person Andrea    schedule 01.07.2014