И весьма странно, что подобный скрипт наравне с 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);
}
}
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.