Вращение объекта из центральной точки

Программирование на Юнити.

Вращение объекта из центральной точки

Сообщение PHPDog2009 28 авг 2009, 10:30

Вообщем скрипт таков:
Код: Выделить всё
using UnityEngine;
using System;
using System.Text;
[AddComponentMenu("Camera-Control/Mouse Rotate")]
public class MouseRotate : MonoBehaviour
{
    public bool rotate = false;

    public float sensitivityX = 15F;
    public float sensitivityY = 15F;

    public float minimumX = -360F;
    public float maximumX = 360F;

    public float minimumY = -360F;
    public float maximumY = 360F;

    float rotationX = 0F;
    float rotationY = 0F;

    Quaternion originalRotation;

    void OnMouseDown()
    {
        if (!rotate)
            rotate = true;
        else
        {
            rotate = false;
            transform.eulerAngles = new Vector3(0, 0, 0);
        }
    }

    void FixedUpdate()
    {
        if (rotate)
        {
            rotationX += Input.GetAxis("Mouse X") * sensitivityX;
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

            rotationX = ClampAngle(rotationX, minimumX, maximumX);
            rotationY = ClampAngle(rotationY, minimumY, maximumY);

            Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
            Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, Vector3.left);           

            rigidbody.MoveRotation(originalRotation * xQuaternion * yQuaternion);
        }
    }

    void Start()
    {
        // Make the rigid body not change rotation
        if (rigidbody)
            rigidbody.freezeRotation = true;
        originalRotation = transform.rotation;
    }

    public static float ClampAngle(float angle, float min, float max)
    {
        if (angle < -360F)
            angle += 360F;
        if (angle > 360F)
            angle -= 360F;
        return Mathf.Clamp(angle, min, max);
    }
}

прикреплён к родителю, на родителе стоит BoxCollider, но проблема в том, что чилды вращаются из нижней левой точки, а мне надо, чтобы вращались из центра, реально ли это сделать?
Скажи-ка дядя, ведь не даром
Винда, спалённая пожаром,
Пингвинам отдана?
Изображение
Аватара пользователя
PHPDog2009
Герой Форума
 
Сообщения: 107
Зарегистрирован: 08 май 2009, 10:24
Откуда: Россия
  • Сайт
  • ICQ

Re: Вращение объекта из центральной точки

Сообщение Neodrop 28 авг 2009, 12:47

Привязка объекта не по центру. Чтобы крутить вокруг центра объекта, получи его центр так : object.renderer.bounds.center
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Скрипты

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

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