Поясните за поворот камеры и GetAxis

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

Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 18:18

Прив. Хочу запилить такую штуку, чтобы камера летала вокруг перса и смотрела на него, ну как во всех нормальных играх, я с углами плохо дружу, но помню, что в таких скриптах используется метод Input.GetAxis("Mouse X или Y"), ну знач решил его исследовать, зашел в документацию - нифига не понел, решил на практике посмотреть на него, просто выводил значение в дебажную консоль, а значение там выводится тупо - от -1 до 1, вроде бы. И при этом я никакой закономерности не увидел, думал, если в левом верхнем углу, значит что-то должно быть 0, а это значение вообще рандомное какое-то выводится =О !!! Как мне вообще управлять камерой используя мышь???
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Поясните за поворот камеры и GetAxis

Сообщение AMD 22 апр 2013, 18:23

Закономерность такая, когда Вы водите мышку по какой-либо оси (проще говоря от себя - к себе, влево-вправо), тогда и меняются значения.

Если не ошибаюсь:

Двигаем мышь влево это -1, вправо +1, ни туда и ни сюда 0
Двигаем мышь на себя -1, от себя +1, ни туда ни сюда 0
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 18:29

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

Если не ошибаюсь:

Двигаем мышь влево это -1, вправо +1, ни туда и ни сюда 0
Двигаем мышь на себя -1, от себя +1, ни туда ни сюда 0

угу, только что проверил. на эти числа еще и скорость влияет. я быстро дернул мышку и получил 12, ну вроде понятно, знач с помощью этой штуки можно понять куда и с какой скоростью должна двигатся камера. Чтобы она смотрела на перса, надо юзать LookAt, а чтобы она передвигалась на одинаковом расстоянии вокруг перса, что делать? Вы мне код не давайте целый, просто подскажите, пазязя
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Поясните за поворот камеры и GetAxis

Сообщение AMD 22 апр 2013, 18:39

Думаю, тут стоит либо посмотреть из стандартный маус орбит (mouse orbit (вроде так написал)), либо самому двигаться к тому, что мы вращаем камеру ВОКРУГ какой-то точки в пространстве. В роли этой точки - перс
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 18:43

AMD писал(а):Думаю, тут стоит либо посмотреть из стандартный маус орбит (mouse orbit (вроде так написал)), либо самому двигаться к тому, что мы вращаем камеру ВОКРУГ какой-то точки в пространстве. В роли этой точки - перс

угу, вот кусок кода
Синтаксис:
Используется csharp
        public float yRotation = 5.0F;
    void Update() {
        yRotation += Input.GetAxis("Mouse X");
        transform.eulerAngles = new Vector3(10, yRotation,0);
    }

оно вращает камеру вокруг перса по горизонтали, терь нада разобратся с эулерАнглес :3
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 18:51

ну я в этом не разбираюсь кароч. наверное, буду юзать ротейт ераунд
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Поясните за поворот камеры и GetAxis

Сообщение AMD 22 апр 2013, 18:56

А собственно, что Вас смущает в этом кусочке?
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 19:25

AMD писал(а):А собственно, что Вас смущает в этом кусочке?

ну я приделал еще и Mouse Y, но оно не крутило камеру по вертикали, так и продолжало по горизонтали крутится и все =(
Синтаксис:
Используется csharp
public float yRotation = 5.0F;
public float xRotation = 5.0F;
    void Update() {
        yRotation += Input.GetAxis("Mouse X");
xRotation += Input.GetAxis("Mouse Y");
        transform.eulerAngles = new Vector3(xRotation, yRotation,0);
}
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24

Re: Поясните за поворот камеры и GetAxis

Сообщение Chaz 22 апр 2013, 22:08

Как оказалось, кручение по горизонтали было возможным потому что на камере весел еще один скрипт. и вместе с этим моим маленьким они работали как единое целое хД в общем я чутка подкрутил старый скрипт и у меня все заработало так, как нужно, вот эти два скрипта
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class MyCamera : MonoBehaviour {
  public GameObject target;
    public float damping = 5;
    Vector3 offset;
    void Start() {
        offset = target.transform.position - transform.position;
    }
    void LateUpdate() {
        float currentAngle = transform.eulerAngles.y;
        float desiredAngle = target.transform.eulerAngles.y;
        float angle = Mathf.LerpAngle(currentAngle, desiredAngle, Time.deltaTime * damping);
                float cr = transform.eulerAngles.x;
                float da = target.transform.eulerAngles.x;
                float an = Mathf.LerpAngle(cr,da,Time.deltaTime*damping);
        Quaternion rotation = Quaternion.Euler(an*2, angle*2, 0);
        transform.position = target.transform.position - (rotation * offset);
        transform.LookAt(target.transform);
    }
}

 

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class euler : MonoBehaviour {

        public float yRotation = 5.0F;
        public float xRotation = 5.0f;
    void Update() {
        yRotation += Input.GetAxis("Mouse X");
                xRotation-=Input.GetAxis("Mouse Y");
        transform.eulerAngles = new Vector3(xRotation+5f, yRotation+5f,0);
                //transform.LookAt(transform.parent);
    }
   
}
 
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24