Баг с Antares Addon (Curves)

Общие вопросы о Unity3D

Баг с Antares Addon (Curves)

Сообщение yura415 13 сен 2011, 23:06

Есть кривая, по ней двигается куб, доходит до какой-то точки, и начинает крутится.
Билд - http://dl.dropbox.com/u/17410458/bug/bug.rar
Добавить yura4151 в Skype
Аватара пользователя
yura415
Старожил
 
Сообщения: 567
Зарегистрирован: 14 дек 2010, 08:27
  • Сайт

Re: Баг с Antares Addon (Curves)

Сообщение Neodrop 14 сен 2011, 00:01

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

Re: Баг с Antares Addon (Curves)

Сообщение yura415 14 сен 2011, 00:13

Возможно. Изменил параметры, теперь идёт вперёд только по первому пункту.
Скипт
Синтаксис:
Используется csharp
//Created by Neodrop
//neodrop@unity3d.ru
using UnityEngine;
//#pragma warning disable

public class MoveOnCurve : MonoBehaviour {

    public GameObject curve;
    public float speed = 1f, minDistanceToPoint = .1f, rotationDamping = 6f;
    private Curve _curve;
    public int currentCurvePoint = 0;
    private Transform _target;

        void Start () {
            _curve = new Curve(curve);
        _target = new GameObject("target").transform;
            PositionOnStart();
        }

    void PositionOnStart()
    {
        //Set the initial cube position over the Curve Start point
        transform.position = _curve.curvePoints[_curve.GetNearestCurveSmoothPoint(0)];
        //Set the target object position in next curve point
        _target.position = _curve.curvePoints[1];
        transform.LookAt(_target);
    }
       
        void Update ()
    {
        if (currentCurvePoint == -1) return;
            if (Vector3.Distance(transform.position, _target.position) < minDistanceToPoint)
            {
                currentCurvePoint++;
            if (currentCurvePoint == _curve.curvePoints.Length)
            {
                currentCurvePoint = 0;
                PositionOnStart();
            }
                else _target.position = _curve.curvePoints[currentCurvePoint];
            }
        // Smooth Look at target to smoothing movement
        Quaternion rotation = Quaternion.LookRotation(_target.position - transform.position);
        transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotationDamping);
        // Move to target
            transform.Translate(Vector3.forward*(Time.deltaTime*speed), Space.Self);
        }
}
 
Добавить yura4151 в Skype
Аватара пользователя
yura415
Старожил
 
Сообщения: 567
Зарегистрирован: 14 дек 2010, 08:27
  • Сайт

Re: Баг с Antares Addon (Curves)

Сообщение Neodrop 14 сен 2011, 14:19

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

Re: Баг с Antares Addon (Curves)

Сообщение yura415 14 сен 2011, 15:51

Neodrop писал(а):Крутится кубик от того, что проскакивает текущую точку и начинает снова на неё разворачиваться.
Есть несколько вариантов решения этой проблемы, но это уже ваша задача не моя.
Простейший способ - проверить такой "проскок" через InverseTransformPoint - если Z меньше нуля, значит точка позади. Делов то.
И пожалуйста, именуйте багами баги, а не собственный недосмотр.

Спасибо. Впредь буду квалифицировать ошибки более квалифицировано :) .
Добавить yura4151 в Skype
Аватара пользователя
yura415
Старожил
 
Сообщения: 567
Зарегистрирован: 14 дек 2010, 08:27
  • Сайт


Вернуться в Общие вопросы

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

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