Поворот объекта относительно другого

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

Поворот объекта относительно другого

Сообщение DjKoKs 06 июн 2011, 13:30

Всем привет. Как сделать так, чтобы объект A смотрел на объект Б. То есть вращался относительно объекта Б. Можно выдержку из скрипта? Или может есть какой-то туториал?
Аватара пользователя
DjKoKs
UNец
 
Сообщения: 33
Зарегистрирован: 05 дек 2010, 23:42

Re: Поворот объекта относительно другого

Сообщение Zaicheg 06 июн 2011, 14:09

Transform.LookAt
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Поворот объекта относительно другого

Сообщение king_kong 06 июн 2011, 14:33

вот тебе пьеса. прикрепи скрипт к камере(объект на который фокусируется камера должен называться Player)

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

public class PlayerCamera: MonoBehaviour {
               
        public float
                xSpeed,
                ySpeed,
                zoomSpeed,
                limitZoom;
       
        private Transform target;
        private float x, y, distance = 10;
       
        void Start ()
        {
                target = GameObject.Find("Player").GetComponent<Transform>();
               
                x += (float)(Input.GetAxis("Mouse X") * xSpeed );
        y -= (float)(Input.GetAxis("Mouse Y") * ySpeed );
               
                transform.rotation = Quaternion.Euler(y, x, 0);
        }
       
        // Update is called once per frame
        void Update ()
        {
                distance -= (float)(Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed);
               
                if(distance < 2) distance = 2;
                if(distance > limitZoom) distance = limitZoom;
               
                if(Input.GetMouseButton(1))
                {
                        x += (float)(Input.GetAxis("Mouse X") * xSpeed * Time.deltaTime);
                y -= (float)(Input.GetAxis("Mouse Y") * ySpeed * Time.deltaTime);
                                               
                        if(x > 360) x = 1;
                        if(x < 0) x = 360;
                       
                        if(y < 0) y = 0;
                        if(y > 90) y = 90;
                       
                    transform.rotation = Quaternion.Euler(y, x, 0);
                }
                transform.position = transform.rotation * new Vector3(0, 1, -distance) + target.position;
        }
}


то что тебе нужно находится на 44 и 46 строке
transform.rotation = Quaternion.Euler(y, x, 0);
transform.position = transform.rotation * new Vector3(0, 1, -distance) + target.position;

параметры x, y это положение камеры относительно объекта на который фокусируемся, distance соответственно дистанция от объекта
Аватара пользователя
king_kong
UNец
 
Сообщения: 40
Зарегистрирован: 03 июн 2011, 21:58
Откуда: Барнаул

Re: Поворот объекта относительно другого

Сообщение DjKoKs 07 июн 2011, 19:52

Спасибо большое! :)
Аватара пользователя
DjKoKs
UNец
 
Сообщения: 33
Зарегистрирован: 05 дек 2010, 23:42


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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 13