Я делаю 3D-платформерную игру и хочу, чтобы мой игровой объект с CharacterController прыгнул. У меня возникла странная проблема, когда, несмотря на то, что мой отладочный текст говорит, что мой объект подвергается вектору в направлении y, я не вижу этих результатов на экране. Существует множество ресурсов, которые, как представляется, доступны для этой работы, но ни один из подходов не работает для меня. Я думал, что попрошу здесь.Unity3D CharacterController jumping issues
Персонаж представляет собой набор игровых объектов с преобразованием (duh), диспетчер символов, RigidBody и прилагаемый сценарий.
Жесткий чехол имеет «isKinematic». Все остальное в RigidBody по умолчанию.
Ниже выступа часть моего решения сделать мой характер прыжок, поворот, и двигаться в моем цикле обновления:
первое это наверху:
private Vector3 forward;
private Vector3 upvec = Vector3.zero;
Тогда вот мое обновление :
void Update(){
CharacterController controller = GetComponent<CharacterController>();
forward = Vector3.zero; //forward is a private Vector3 defined above
if (Input.GetKey ("w")) { forward = transform.TransformDirection (Vector3.forward); }
if (Input.GetKey("s")) { forward = transform.TransformDirection (Vector3.forward); }
if (Input.GetKey("space")) {upvec.y = jumpSpeed; //set to non-zero, I swear}
transform.Rotate (0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);//rotate
float curSpeed = speed * Input.GetAxis ("Vertical");//allows backwards
text_3.text = (forward * curSpeed).ToString(); //my own debugging
controller.Move (forward * curSpeed); //moves backwards/forwards
text_1.text = upvec.ToString();
controller.Move (upvec * Time.deltaTime); //SHOULD move upwards but does not
}
Персонаж поворачивается и движется вперед/назад просто отлично. Он просто не прыгнет.
Я попытался просто изолировать важный код, чтобы проиллюстрировать проблему. Дайте мне знать, если я могу что-то сделать, чтобы прояснить moreso.
Благодаря