Камера

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

Камера

Сообщение MASDARM 08 июл 2012, 22:06

Помогите сделать камеру как на видео. Нужно что бы по нажатию на колёсик вращать, а при нажатии на правую кнопку мыши перемещать камеру.
Заранее спасибо.
MASDARM
UNIт
 
Сообщения: 56
Зарегистрирован: 11 ноя 2011, 18:42

Re: Камера

Сообщение bomberest 08 июл 2012, 22:15

Тогда предлагаю тебе рассказать, какие у тебя есть уже идеи?
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера

Сообщение nurgan27 08 июл 2012, 22:16

Вот скрипт . Только он немного другой.
Синтаксис:
Используется javascript
var target : Transform;
var distance = 10.0;
var xSpeed = 250.0;
var ySpeed = 120.0;
var sSpeed = 1;
var sMinDistance = 2;
var sMaxDistance = 20;
var yMinLimit = -20;
var yMaxLimit = 80;

private var x = 0.0;
private var y = 0.0;

@script AddComponentMenu("Camera-Control/Mouse Orbit")

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

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

function LateUpdate () {
                        distance -= (Input.GetAxis("Mouse ScrollWheel") * sSpeed * 2);
                if (distance < sMinDistance) {
                        distance = sMinDistance; }
                if (distance > sMaxDistance) {
                        distance = sMaxDistance; }
                var rotation = Quaternion.Euler(y, x, 0);
                var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
             
                transform.rotation = rotation;
        transform.position = position;
                       
                        if(Input.GetMouseButton(1)) {
                        x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
                        y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
               
                                y = ClampAngle(y, yMinLimit, yMaxLimit);
       
                transform.rotation = rotation;
                transform.position = position;
        }
        }

static function ClampAngle (angle : float, min : float, max : float) {
        if (angle < -360)
                angle += 360;
        if (angle > 360)
                angle -= 360;
        return Mathf.Clamp (angle, min, max);
}
Аватара пользователя
nurgan27
UNITрон
 
Сообщения: 282
Зарегистрирован: 18 апр 2012, 17:27

Re: Камера

Сообщение MASDARM 09 июл 2012, 17:06

Получилось только сделать управления клавиатурой и приближение.
Синтаксис:
Используется javascript
private var moveKeyDown : boolean = false;
private var moveKeyDirection : Vector3 = Vector3(0,0,0);

private var cameraMoveSpeed : int = 40;
private var cameraRotateSpeed : int = 1;

private var rotateKeyDown : boolean = false;

private var rotateKeyDirection;
var cameraMoveSpeedDamper = 0.02;
var minMaxZoomHeight : Vector2;
var mouseWheelSpeed : float = 150.0;


function Update () {

       
        if (Input.GetKeyDown("w") || Input.GetKeyDown("up"))
        {

                moveKeyDown = true;
                moveKeyDirection += Vector3(0, 0, cameraMoveSpeed);

        }
       
        if (Input.GetKeyUp("w") || Input.GetKeyUp("up"))
        {
                moveKeyDown = false;
                moveKeyDirection -= Vector3(0, 0, cameraMoveSpeed);

        }
       
        if (Input.GetKeyDown("s") || Input.GetKeyDown("down"))
        {

                moveKeyDown = true;
                moveKeyDirection += Vector3(0, 0, -cameraMoveSpeed);

        }
       
        if (Input.GetKeyUp("s") || Input.GetKeyUp("down"))
        {
                moveKeyDown = false;
                moveKeyDirection -= Vector3(0, 0, -cameraMoveSpeed);

        }
       
        if (Input.GetKeyDown("a") || Input.GetKeyDown("left"))
        {

                moveKeyDown = true;
                moveKeyDirection += Vector3(-cameraMoveSpeed, 0, 0);

        }
       
        if (Input.GetKeyUp("a") || Input.GetKeyUp("left"))
        {
                moveKeyDown = false;
                moveKeyDirection -= Vector3(-cameraMoveSpeed, 0, 0);

        }
       
        if (Input.GetKeyDown("d") || Input.GetKeyDown("right"))
        {

                moveKeyDown = true;
                moveKeyDirection += Vector3(cameraMoveSpeed, 0, 0);

        }
       
        if (Input.GetKeyUp("d") || Input.GetKeyUp("right"))
        {
                moveKeyDown = false;
                moveKeyDirection -= Vector3(cameraMoveSpeed, 0, 0);

        }
       

       
        if (moveKeyDown)
        {
                transform.Translate(moveKeyDirection * cameraMoveSpeedDamper);
        }
       
       
       
                 // -------------------Code for Zooming Out------------
             if ((Input.GetAxis("Mouse ScrollWheel") < 0))
                {
                    if (Camera.main.fieldOfView <= 69)
                                        Camera.main.fieldOfView += 1;
                                if (Camera.main.orthographicSize <= 20)
                       Camera.main.orthographicSize += 1;
       
                }
                // ---------------Code for Zooming In------------------------
             if ((Input.GetAxis("Mouse ScrollWheel") > 0))
                {
                                if (Camera.main.fieldOfView>30)
                                        Camera.main.fieldOfView -=1;
                                if (Camera.main.orthographicSize>=1)
                        Camera.main.orthographicSize -= 1;
                }              
}
 
MASDARM
UNIт
 
Сообщения: 56
Зарегистрирован: 11 ноя 2011, 18:42

Re: Камера

Сообщение MASDARM 09 июл 2012, 20:17

Больше всего меня интересует как сделать так, что бы при нажатии на правую кнопку мыши перемещать камеру, как показано на видео.
MASDARM
UNIт
 
Сообщения: 56
Зарегистрирован: 11 ноя 2011, 18:42

Re: Камера

Сообщение mr_Mandarin 09 июл 2012, 22:17

Недавно написал скрипт такой камеры. В ЛС кинул
Аватара пользователя
mr_Mandarin
UNITрон
 
Сообщения: 159
Зарегистрирован: 18 сен 2011, 09:39

Re: Камера

Сообщение drice 11 янв 2013, 11:35

Пожалуйста, пришлите и мне скрипт в ЛС, сейчас как раз необходимо сделать камеру, перемещаемую зажатой кнопкой мыши.
Буду очень благодарен
drice
UNец
 
Сообщения: 11
Зарегистрирован: 19 мар 2012, 16:53


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

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

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot], Yandex [Bot] и гости: 31