Войти
ПрограммированиеФорумФизика

Проблема с прыжком персонажа в Unity. (3 стр)

Страницы: 1 2 3 4 5 Следующая »
#30
23:39, 5 июля 2018

Sazonoff
> Character controller имеет методы через которые должно осуществляться
> управление им - Move и SimpleMove.
Sazonoff
> Для определения "земли" у character controllera есть встроенное свойство
> isGrounded.


Character controller
  на кого вешать?
на мужика
на опору земля
накого то одного
и на землю и на мужика


#31
0:02, 6 июля 2018

Rikk
Sazonoff верно говорит. Вешать нужно на мужика. Но лучше бы глянуть какой-нибудь гайд, там достаточно точно описано
Что то вроде такого:
https://www.youtube.com/watch?v=I7r61VmFL0E

#32
0:07, 6 июля 2018

Razz
он там еще пишет скрипт-программу управление контроллером
Т=4мин....6мин по видео

#33
9:44, 6 июля 2018

В общем, я глянул сцену.
Не используй одновременно Character Controller и Rigidbody.
Ты должен двигать персонажа либо через transform, либо через физику. В твоем случае скрипт ME Walking видимо "перезаписывает" значения скрипта ME Jump.

#34
10:02, 6 июля 2018

То есть мне нужно удалить компонент Rigidbody? Я сейчас книгу внимательно прочел, и там Character COntroller описывает и физику для персонажа. И получается я должен оставить все как есть, удалил Rigidbody & Capsule Colider, но constant force оставить?

#35
16:15, 6 июля 2018

навесил Controller
  затем надо писать программинг си-шарп управления контроллером?
или можно навесить Controller а программу не писать?

#36
16:19, 6 июля 2018

Я навесил Controller и написал скрипт, удалил Rigidbody и заметил, что и без Rigidbody он не проваливается ,потому в скрипте к CC была прописана физика. Только после удаления Rigidbody, персонаж с Character Controller взбирается по стенам и горам не смотря на установленные параметры Slope Limit & Step Offset.

#37
17:41, 6 июля 2018

Blinopop
> Я навесил Controller
https://docs.unity3d.com/Manual/CharacterControllers.html

The controller has its own special functions to set the object’s speed and direction but unlike true colliders, a rigidbody is not needed and the momentum effects are not realistic.
Контроллер имеет свое собственное специальные функции для установки скорости объекта и направления но не как истинно-коллайдеры, (при этом) rigidbody не нуждается (необязан) и момент эффектов не реалистичен.

#38
18:08, 6 июля 2018

Получается мне нужно переписывать все без CC, но с Rigidbody и Capsule Colider?

#39
19:23, 6 июля 2018

Blinopop
> Получается мне нужно переписывать все без CC, но с Rigidbody и Capsule Colider?
да
не пиши СС а то хрен знает что неясно
пиши всегда оригинальное название полностью типа Character Controller

#40
20:59, 6 июля 2018

Increaser
> Increaser
а у вас на скриншоте там стр1
есть RigidBody+Character Controller+Капсул-Коллайдер

и еще
Sazonoff
> Не стоит использовать Rigidbody и character controller вместе. Character
> controller создан чтобы заменить Rigidbody

Вы два товарища противоречите друг другу.
Надо как то пояснить за базар . Аргументы доводы пояснения факты скандалы интриги расследования и тд..

#41
21:05, 6 июля 2018

Люди. Делал как по уроку в видео https://www.youtube.com/watch?v=9iPpZ0Bvx_Q&t=245s.
Выдает, чтобы пофиксил ошибку скрипта. Может кто подсказать в чем она именно?

+ Показать

#42
23:06, 6 июля 2018

Blinopop
> using UnityEngine;
> using System.Collections;
>
> [RequireComponent(typeof(Rigidbody))]
> public class MEJump : MonoBehaviour

стр1 пост номер ноль.

этот скрипт прыжок на один раз.

как его зациклить на много раз.

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

что там надо дописать на си-шарп ?
  типа цикл бесконечного
      for i=1 to бесконечность

теперь что ли становиться быдле-название : юнити-кодером
респектабельное название :  программист на языке си-шарп , прикладное дело unity-engine
?

#43
8:39, 7 июля 2018

Rikk
> Вы два товарища противоречите друг другу.

Не стоит != нельзя. Чаще всего в этом просто нет необходимости.
Есть три варианта передвижения объектов в unity:

1)Двигаем через изменение transform.position - самый хреновый вариант для персонажа, можно использовать в особых случаях(когда не нужна физика, столкновения). Например, можно использоваться для полета камеры в катсцене,или для перемещения объектов интерфейса.
По сути с помощью данного метода мы его не двигаем,а телепортируем, соответственно могут возникать проблемы с проникновением сквозь стены, неадекватной реакции посторонних физических объектов на столкновение с ним, застревания и.т.д.
Бонусом: Если у объекта есть коллаидер, но нет Rigidbody => движок будет его считать за статичный объект => любое передвижение этого объекта будет вызывать перерасчет collision data => может иметь сильное влияние на производительность.
Вывод: Подходит для объектов которые не взаимодействуют физически с другими объектами => стоит использовать без Коллаидера + Rigidbody или на крайний случай Collider+Rigidbody.

2)Character controller и движение через методы Move и SimpleMove - юзается для персонажей, которым не нужна "настоящая" физика. Если персонаж у нас должен мгновенно останавливаться или мгновенно начинать двигаться, без разгонов и инерции то этот вариант самый простой.
Сам по себе Character controller является коллайдером => дополнительных коллайдеров(!isTrigger) быть не должно(по идее они просто не будут работать). Rigidbody для движения не нужен.

3)Rigidbody + Collider - юзается для физических тел, есть куча способов движения для получения нужного результата. Самым "правильным" методом для движения будет AddForce, однако никто не запрещает напрямую изменять velocity или другие параметры для получения нужного результата.

Выдает, чтобы пофиксил ошибку скрипта. Может кто подсказать в чем она именно?

Консоль в юнити указывает тебе на ошибку, немного почитать или погуглить и сам поймёшь где ошибка.
1) Как минимум player.rigidbody - устаревший. Сейчас нужно объявлять Rigidbody переменную и обращаться уже к ней.
2)OnollisionEnter - не ошибка,но это не юнитевская сигнатура метода, поэтому вызываться не будет =>заменить на OnCollisionEnter(Collision collision)

этот скрипт прыжок на один раз.

как его зациклить на много раз.


Метод Update() вызывается каждый кадр. Поэтому данный скрипт как раз будет "прыжок на много раз".
Представьте, что каждый кадр вы спрашиваете: А нажата ли кнопка пробел? Если нажата и мы сейчас не в прыжке - прыгаем.


P.S Сейчас интернет полон туториалов, которые разжевывают многие аспекты, особенно начального уровня. Нужно всего лишь небольшие знания английского и желание учиться.
https://unity3d.com/ru/learn/tutorials
Если какой-то метод не понятен, можно посмотреть в api https://docs.unity3d.com/ScriptReference/

Чем дольше вы будете просить других помочь с мелкими проблемами тем дольше вы ничему не научитесь.

#44
18:52, 7 июля 2018

Sazonoff
> Двигаем через изменение transform.position
  писать программу юнити ? код-программа
  или
в самом юнити настройки функций типа там x1=x0+5 . не писать программу.
?

Sazonoff
> Поэтому данный скрипт как раз будет "прыжок на много раз".
этот скрипт поставил и опробовал . это происходит одноразовое . один раз делает и потом все.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумФизика

Тема в архиве.