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

Mouse ThirdPersonController[Решено]

СообщениеДобавлено: 23 июн 2011, 15:37
zzz7net
Не могу понять как перепрограммировать ThirdPersonController.js, который входит в Standard Assets для управления мышью, а не клавиатурой.
И весьма странно, что подобный скрипт наравне с ThirdPersonController.js не включили в Standard Assets.


Как бы то ни было, вот что у меня получилось:
Синтаксис:
Используется javascript
//-- MouseThirdPersonController.js
public var speed: int = 2;

function Update()
{
        if(Input.GetMouseButton(0))
        {      
                //Посылаем луч из камеры в сцену и при пересечении, запоминаем информацию о позиции
                var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                var hit : RaycastHit;

                if (Physics.Raycast (ray, hit)) {var position: Vector3 = hit.point;}

                // Теперь когда есть информация о позиции, начинаем передвижение. Для этого вычисляем вектор.
                // Нормализуем, чтобы он был единичен
                var direction : Vector3 = position - transform.position;
                direction.Normalize();

                // Начинаем перемещение Character Controller по направлению к точке клика           
                var controller : CharacterController = GetComponent(CharacterController);
                var flags = controller.Move(direction * Time.deltaTime * speed);
        }
}
 


Всё отлично, но при движении CharacterController не поворачивается по направлению к точке клика, а перемещается боком :-?
Есть предложение довести его до ума и включить в стандартные скрипты, пусть не в самом IDE Unity3d, потому как это задача авторов, но хотя бы на форуме unity3d.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 16:12
Zaicheg
Перенесено. Теперь я готов убивать даже пушистых невинных пони с умными глазами.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 16:39
zzz7net
А вы не думаете, что в вашем поступке слишком много личного?
вопрос был сформулирован корректно, тема была опубликована в подходящем разделе.

Судя по вашим предыдущим сообщениям, не ранее как 2 месяца назад вы были точно таким же "пони".
И вот теперь вы уже адепт.

Чтож добавлю свои 5 копеек в копилку вашей звёздности, чтоб вы уже окончательно начали сиять.
Теперь вы звезда. Zaicheg (P)

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 16:44
DEtH_MoroZ
Расскажи, что точно ты хочешь от контроллера?

аля la2? или как 3d action?

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 16:46
zzz7net
Чтобы ходил лицом по направлению к указателю, а не боком или спиной.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:01
DEtH_MoroZ
нуууу, вот что я вижу в ThirdPersonController.js:
Синтаксис:
Используется javascript
        // Target direction relative to the camera
        var targetDirection = h * right + v * forward;
 


и т.д. от этого места. возможно стоит поковырять эту часть, ибо направление движения ты задаешь, а поворот нет.

или я что-то не так понял?

эдит: в смысле, направление в ThirdPersonController.js рассчитывается от положения камеры, а тебе нужно "смотреть" на точку клика.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:16
zzz7net
или я что-то не так понял?


вы всё правильно поняли.
ну чтож попробуем ... указанную часть

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:21
DEtH_MoroZ
стоит заметить, что возможно лучше воспользоватся firstpersoncontroller + скрипт на управление камерой.

ну, и возможно поможет http://unity3d.com/support/documentatio ... ookAt.html , но это не самый кошерный вариант. Зато простой :)

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:43
zzz7net
firstpersoncontroller

не подойдёт. нужен вид от 3-го лица. + там тоже управление a,w,s,d с клавиатуры.
А управление мышью реализовано только для камеры, а не для Character Controller

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:45
Order
лол Зайчега "поней" обозвали :) ой че ща будет.. (popcorn)

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:47
DEtH_MoroZ
Синтаксис:
Используется javascript
// Get the input vector from keyboard or analog stick
var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));


а ты, вместо этого, задаешь твой вектор.

эдит: это FPSInputController.js
эдит2: да, а камеру можно чем нибудь еще контролить. например smoothfollow или еще чем.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 17:51
zzz7net
уважаемый Order, он не пони, он звезда ! (*)

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 18:05
Zaicheg
CharacterController не поворачивается по направлению к точке клика

Transform.LookAt или Quaternion.LookRotation могут помочь.

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 19:17
zzz7net
Transform.LookAt или Quaternion.LookRotation


в процессе.. как раз с этим сейчас и возимся в этой песочнице, где вы нас заперли Роман.
Но учтите, что песочница когда доделает скрипт, с Вашей веткой - "Скрипты" не поделиться ;)

Re: Mouse ThirdPersonController

СообщениеДобавлено: 23 июн 2011, 22:10
Zaicheg
Order писал(а):лол Зайчега "поней" обозвали :) ой че ща будет.. (popcorn)

Я когда спарринг-партнёра душил — представлял, что это zzz7net. Вроде отпустило.