Страница 2 из 2

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 05 фев 2010, 07:49
Zaicheg
Satan писал(а):Другое дело moveDirection, встроенная функция в CharacterController.Видимо она просчитывает расстояние до колизии и если впереди преграда,то продвигает ровно до нее.

Функция называется CharacterController.Move()
Это толком не документировано, но я полагаю, что она реализует передвижение аналогично rigidbody.velocity.
Именно из-за не очень высокой для меня прозрачности работы CharacterController я отказался от его использования почти сразу же. Rigidbody + Collider дают не меньший функционал.

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 13 фев 2010, 23:26
BORODA
Столкнулся с проблемами гравитации.
Сделал небольшую тестовую сцену.
Изображение
Проблема в том что если сместить куб чуть чуть вправо он падает на землю со скоростью света. Фактически за 1 кадр. Пробовал менять настройки гравитации во всех местах которые нашел (контроллеры, конфиги проекта...) - никакого эффекта.
Как это решить?

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 14 фев 2010, 09:18
warr11r
Скрипт какой-то к кубику прицеплен?

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 14 фев 2010, 10:41
BORODA
Вообщем сегодня утром взглянув свежим взглядом на скрипт нашел причину.
Было
Код: Выделить всё
       moveDirection.y -= gravity * Time.deltaTime;

Стало
Код: Выделить всё
   if (!grounded)
   {
       // Apply gravity
       moveDirection.y -= gravity * Time.deltaTime;
   }

Фактически я постоянно применял гравитацию к объекту. Не зависимо от того находился он на чем то или нет. Сила накапливалась с каждой секундой и получалась такая лабуда.
Проблема решена. [V]

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 25 мар 2010, 15:07
underground
лично я так ничего и не понял - попытался переделать fpswalker
получился mywalker.js
Код: Выделить всё
[syntax=]
var gravity = 20.0;
var speed = 20.0;

private var moveDirection = Vector3.zero;
function Update () {
   var z = Input.GetAxis("Vertical") * Time.deltaTime * speed;
   var controller : CharacterController = GetComponent(CharacterController);
   if (controller.collisionFlags != CollisionFlags.Sides)

   {
   transform.Translate(0, 0, z);
   }
   
   if (controller.collisionFlags == CollisionFlags.None)
   

      {
   
      transform.Translate(0, -0.01, 0);
   }
   // Move the controller
   
   
   var x = Input.GetAxis("Horizontal") *Time.deltaTime *100;
   transform.Rotate(0, x, 0);
   
}

@script RequireComponent(CharacterController)
[/syntax]

но коллизии всеравно не работают как ни крути ~x(

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 25 мар 2010, 17:36
Neodrop
Учимся использовать тег Syntax :-w

Re: Физика модели (управление от третьего лица)

СообщениеДобавлено: 22 авг 2014, 09:22
DanilaDIV
Так и не понял как заставить ГО перешагивать невысокие объекты. Что именно влияет в капсулколлайдоре?