Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 29.06.2011, 10:22   #1
Nazgul
Нуждающийся
 
Регистрация: 14.01.2011
Сообщений: 72
Написано 9 полезных сообщений
(для 44 пользователей)
MouseOrbit по эллипсу

Стандартный скрипт MouseOrbit вращает камеру вокруг объекта по окружности. Что в нем изменить, чтобы он вращал камеру по эллипсу?
Ниже приведу код стандартного скрипта MouseOrbit:
var target Transform;
var 
distance 10.0;

var 
xSpeed 250.0;
var 
ySpeed 120.0;

var 
yMinLimit = -20;
var 
yMaxLimit 80;

private var 
0.0;
private var 
0.0;
/* Параметры эллипса
private var a = 5;
private var b = 3;
*/
@script AddComponentMenu("Camera-Control/Mouse Orbit")

function 
Start () {
    var 
angles transform.eulerAngles;
    
angles.y;
    
angles.x;

    
// Make the rigid body not change rotation
       
if (rigidbody)
        
rigidbody.freezeRotation true;
}

function 
LateUpdate () {
    if (
target) {
        
+= Input.GetAxis("Mouse X") * xSpeed 0.02;
        
-= Input.GetAxis("Mouse Y") * ySpeed 0.02;
         
         
ClampAngle(yyMinLimityMaxLimit);
                
        var 
rotation Quaternion.Euler(yx0);
        var 
position rotation Vector3(0.00.0, -distance) + target.position;
        
        
transform.rotation rotation;
        
transform.position position;
    }
}

static function 
ClampAngle (angle floatmin floatmax float) {
    if (
angle < -360)
        
angle += 360;
    if (
angle 360)
        
angle -= 360;
    return 
Mathf.Clamp (angleminmax);

(Offline)
 
Ответить с цитированием
Старый 29.06.2011, 11:05   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: MouseOrbit по эллипсу

Сообщение от Nazgul Посмотреть сообщение
...
...
static function 
ClampAngle (angle floatmin floatmax float) {
    if (
angle < -360)
        
angle += 360;
    if (
angle 360)
        
angle -= 360;
    return 
Mathf.Clamp (angleminmax);

http://forum.boolean.name/showthread.php?t=1480
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com