Есть необходимость в качественном контроллере персонажа от третьего лица. Стандартный контроллер юнити не устраивает по многим параметрам. Пробовал написать свой, (тут) получилось, конечно, но всё это наколеночная самоделка. Если есть у кого подобного рода контроллер, был бы чрезвычайно признателен.
Добавлено (02 Дек 2013, 13:16) --------------------------------------------- Основной проблемой стандартного контроллера персонажа на мой взгляд является камера. Собственно нашёл решение этой проблемы, если кому-то интересно: видео на ютуб Буквально сегодня-завтра постараюсь на основе этого видео набросать собственный контроллер.
Однако, вопрос оставляю открытым. Если есть уже готовые решения, буду благодарен!
Да, решений - огромное количество, прямопропорционально кол-ву игр сейчас популярной тупой ветви развития MMO -- RPG, в особенности - про средневековье. Зайдите хотя-бы на assetstor.unity и посмотрите там, а если хотите что-то бесплатное оттуда - то вступайте в наш клуб... Правила форума · участникGCC
Клуб - основной раздел сайта, ядро, форум - лишь часть. Поищите - посмотрите, камера вообще достаточно просто делается. Как правило проблем с 3rd контроллерами возникать не должно. А вот с реалистичными fps контроллерами... там и кодинг, и анимация, и гейм-дизанинг нужен. Правила форума · участникGCC
Клуб - основной раздел сайта, ядро, форум - лишь часть.
Благодарю! Но по характеристикам не подхожу...Есть, как говорится, к чему стремиться.
Добавлено (25 Янв 2014, 15:00) --------------------------------------------- И снова вынужден вернуться к этому вопросу. Камеру пока отложил, хочу реализовать для начала нормальное управление.
С хождением прямо назад и вбок проблем нет, есть проблемка с прыжком. Состоит она в следующем:
Что бы прыгнуть нужно плавно подняться на определённую высоту, использую для этого Vector3.Lerp Но никак не могу придумать, как это реализовать грамотнее. Решил завести булеву переменную, которая говорит что нужно прыгнуть. Если она тру, то прыгаем, пока не допрыгнем, как допрыгнули, присваиваем false. Ну почему-то она никогда не присваивается false. На персонаже установлен RigitBody, возможно проблема в этом и он просто не даёт ей долететь, роняя раньше.
Прошу подсказки. Вот скрипт:
Код
using UnityEngine; using System.Collections;
public class PersonalController : MonoBehaviour { private GameObject player; public GameObject PersModel; private bool needJump = false; private bool startJump = false; public int speed = 5; public Camera camera; private float startPosY; public int speedRotation = 5; public int jumpSpeed = 5; // Use this for initialization void Start () { player = (GameObject)this.gameObject; }
// Update is called once per frame void Update () { if (needJump) { if (player.transform.position.y<startPosY) { PersModel.animation.Blend("jump"); PersModel.animation.Blend("fall"); player.transform.position = Vector3.Lerp(player.transform.position,new Vector3(player.transform.position.x,startPosY,player.transform.position.z), Time.deltaTime); } else { needJump = false; } } else { if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)){ player.transform.position += player.transform.forward * speed * Time.deltaTime; if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)){ player.transform.Rotate(Vector3.down * speedRotation); } if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)){ player.transform.Rotate(Vector3.up * speedRotation); }
Хм, не помню давал Вам эту ссылку, иди нет. Читали ЭТО?
Не помню, Вы давали или нет, может находил сам, но читал. Правда было это давно и уже тогда мне сказали ,что методы используемые в данных уроках устарели, посему я благополучно просто забыл об этом сайте. Надо будет перечитать на досуге...
методы устарели, но Вы же в своих скриптах их используете.
Ну я использую то, чему успел научиться. Пакет знаний, скажем так, не велик. Но если есть какие-то более современные варианты, я был бы чрезвычайно признателен на направление!
Ну мне, например сложные переходы между анимациями гораздо легче делать в Меканим, чем Легаси. В том цикле было сделано не больше десятой части всего, что должно быть в нормальной РПГ игре, а я уже начал путаться в машине состояний. В Меканим это делается элементарно. Потому и считаю, что для той цели, что была поставлена стандартны методы управления анимациями - устарели.
Благодарю всех за ответы. Устаревшими методами или нет, но цели я своей добился. Остался на данным момент один вопрос: Как "отпустить" модель, что бы она просто упала под собственной тяжестью, пусть даже не реалистично. Модель с привязанным скелетом. Какие для этого нужно выполнить манипуляции? С удовольствием бы попробовал найти ответ самостоятельно, но, увы, я даже не знаю, что вписывать в запрос... Заранее благодарю!
Наверное вот это мне и нужно. Если я правильно понял. Это не столько для персонажа ,сколько, скорее в дальнейшем для мобов. Часто в играх можно выстрелить, ударить некое животное, монстра так, что оно при этом отлетает, а конечности дёргаются, словно у брошенной марионетки с отрезанными нитями. Вот хотелось бы понять, как добиться данного эффекта.
Благодарю за ответ. Я так понимаю, что подмена модели обязательна? Если да, то думаю, на этом тему можно закрывать. Дальше разберусь уже самостоятельно.