forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   MouseOrbit по эллипсу (http://forum.boolean.name/showthread.php?t=15024)

Nazgul 29.06.2011 10:22

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

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);



impersonalis 29.06.2011 11:05

Ответ: MouseOrbit по эллипсу
 
Цитата:

Сообщение от Nazgul (Сообщение 193623)
...
PHP код:

...
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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot