Движения объекта по сфере.

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

Движения объекта по сфере.

Сообщение toshiro111 03 апр 2012, 11:15

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

public class playerOnPlanet : MonoBehaviour
{
        public GameObject planet;
        // Use this for initialization
        void Start ()
        {
       
        }
       
        // Update is called once per frame
        void Update ()
        {
           
        }
        void FixedUpdate()
        {
                Vector3 p = transform.position;
                Vector3 pl = planet.transform.position;

                  if((p-pl).magnitude<planet.transform.localScale.x*0.5f+20)
                  {
                            Quaternion q = Quaternion.FromToRotation(Vector3.up,(p-pl));
                            Quaternion newq = q*Quaternion.AngleAxis(transform.rotation.eulerAngles.y,Vector3.up);
                            transform.rotation = Quaternion.Slerp(transform.rotation,newq,0.5f);
                  }
               
        }
}




При движении по прямой от полюса начинает разворачивать на 90 градусов, ориентируя вдоль экватора.

Как это можно исправить?
[РЕШЕНО ДЛЯ СФЕР БОЛЬШОГО РАДИУСА, ~500 И БОЛЕЕ]
toshiro111
UNец
 
Сообщения: 3
Зарегистрирован: 03 апр 2012, 10:11

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

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

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