Rigidbody unity не работает

Unity 2D | Проблема с RigidBody2D

Суть, при приземлении на блок, он должен оттолкнуть игрока в верх.
Написал так, но выдаёт ошибку:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Проблема в Unity all compiler errors have to be fixed unity
Всем доброго времени суток,столкнулся с такой проблемой в юнити Проект 2d Для кода использую.

Unity: проблема с переменными
Недавно начал программировать на unity. Но появилась такая фигня: пишу значение переменной в С#.

Проблема с кодом на Unity
Добрый день! Посмотрите где то ошибка? вот в таком виде не работает как только уберешь цикл если.

Проблема с кодом в Unity 3d
У меня возникли проблемы с кодом (C#) в юнити 3д , написала код как советуют в интернете потому.

Решение

Обычно описание ошибки помогает на 99%, понять проблему.

Player.rigidbody.AddForce — вы уверены, что у GameObject игрока есть такое свойство как rigidbody? Да, в ранних версиях Unity была такая возможность, но теперь доступ к компонентам нужно получать самостоятельно через GetComponent.

Насколько я понял, то вы просто перепутали ссылки на правильный rigidbody. Хотели получить rigidbody игрока, а на самом деле получили rigidbody платформы.

Проблема по скрипту Unity 2d C#
Всем привет. Вот делать квадрат как в Read Ball 4. Получается он перекатывается и тем самым.

Unity / Проблема с анимацией
Анимация бега работает всегда, хотя должна только тогда,когда персонаж бежит. using UnityEngine;.

Проблема с производительностью, Unity 2D
Всем привет. Появилась очень большая проблема связанная с производительностью игры Android на.

Unity проблема с освещением
Почему некоторые объекты просто не отбрасывают тень или просто тень вообще не попадает на объект. .

Источник

Какая то проблема с управлением на Rigidbody

Сделал управление персонажем через силы в Rigidbody. Вроде работает нормально, но скорость перемещения почему то изменяется от запуска к запуску и через некоторое время становится прежним (как на видео). Не могу понять в чем может быть проблема.


Перемещение сделал таким образом:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Проблема с управлением камерой и ее работой с порталами
доброго времени суток форумчане ! накидал простенькое управление камерой и капсулой (пока условным.

Проблема Unity с управлением C# движение персонажа джойстик
Сделал сцену с персонажем которым по идее должен управлять джойстиком персонаж имеет компонент.

Проблема с управлением стрелками
Здравствуйте! Ребят, возникла следующая проблема: Я делаю таблицу, которую пользователь при.

Проблема с управлением перемещением объекта по экрану
Собрался писать игру с использованием Raycasting. На данном этапе, должны отрисовываться стены.

Спасибо. Да, пока что немного хромаю

Добавлено через 22 минуты
Но при изменении velocity напрямую пропадает отдача, которая работает через импульс , и игрок теряет инертность, останавливается моментально при любом Drag

Добавлено через 2 минуты
Особое внимание обрати на Sensitivity и Gravity.

Добавлено через 2 минуты
Да, кстати, если уж очень сильно нужен AddForce, то используй его в FixedUpdate.
Либо в Update, но тогда домнажай на дельту времени:

Источник

Unity Rigidbody не работает должным образом (есть идеи для написания собственного твердого тела вместо?)

Последние несколько дней я работал над некоторыми физиками автомобилей в качестве упражнения по программированию.

Моя конечная цель состоит в том, чтобы получить полуреалистичную физику автомобиля, что-то среднее между качеством старых игр GTA и недавней GTA 5.

Теперь то, что я получил, это довольно сложный процесс, который в конечном итоге дает мне число с плавающей запятой, которое является точной скоростью, с которой я хочу, чтобы автомобиль двигался до следующего кадра, до сих пор я использовал следующий код для этого;

Однако, поскольку я хочу использовать физическую сборку Unity для обнаружения столкновений, я понял, что это не сработает, потому что transform.Translate (насколько я знаю) буквально помещает объект в эту позицию, таким образом, объект может (если двигаться достаточно быстро) внезапно окажетесь на полпути сквозь стену или просто полностью проигнорируете столкновение и появитесь на другой стороне стены. Теперь вместо этого я решил сделать это;

Чтобы быстро заметить, я делаю оба из них в своем FixedUpdate, и в настоящее время я использую только второй пример (или, по крайней мере, пытаюсь использовать его и с треском проваливаюсь). Из-за того, что оно находится в исправленном обновлении, я должен быть в состоянии, по крайней мере, до некоторой степени протестировать его без использования Time.Deltatime, поэтому вы не видите этого во втором примере прямо сейчас.

Чтобы продолжить мою историю, по какой-то причине, когда я устанавливаю скорость твердого тела вместо использования transform.Translate, мое столкновение действует действительно странно. Автомобиль становится все плавучим и толкается вперед (стоит на носу), когда я врезаюсь в стену, я понятия не имею, что может быть причиной этого видения, поскольку я использую собственную гравитацию (гравитация от исходного Rigidbody выключена в пользу моя собственная гравитация, которая приводит к силе движения твердого тела вниз), а также сопротивление и угловое сопротивление твердого тела были уменьшены до 0.

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

Спасибо за любые ответы.

Изменить: это было еще несколько часов. Я использовал вместо этого solidbody.AddForce(), но это, похоже, вообще ничего не делает, и, кроме того, вся причина, по которой я пишу свой автомобильный скрипт, заключается в определении скорости, с которой должен двигаться объект. таким образом создавая что-то вроде solidbody.AddForce(), которое добавляет его к скорости автомобиля более или менее избыточно и не должно быть ненужным.

Единственная причина, по которой я вообще использую жесткое тело, заключается в том, что я могу делать две вещи: 1. Легкие столкновения. Это означает, что я могу добавить к ней простые силы, такие как гравитация, и мне не нужно беспокоиться о том, что она пройдет сквозь пол. 2. легкие повороты, когда на них воздействует физика, например столкновения.

Если у кого-то есть какие-либо идеи о том, как сделать эти две вещи в собственном сценарии, я бы предпочел сделать это, потому что, как бы мне не нравилось единство, физика твердого тела Unity в моих глазах практически ничего не стоит, однако это необходимо, потому что я не могу написать свой собственный жесткий файл, и я не могу найти исходный код Unity Rigidbody. То, что я предпочел бы иметь, это урезанная версия твердого тела, которая обеспечивает легкие столкновения и легкое вращение, но без таких вещей, как построение сопротивления или скорости, потому что это именно те вещи, которые я хочу иметь возможность контролировать себя и иметь Я мог контролировать себя до сих пор, когда я использую transform.Translate, но я теряю этот контроль, когда мне приходится использовать hardbody.velocity.

Если у кого есть идеи, заранее спасибо.

Edit2: Ну, я уже исправил это, и я чувствую себя крайне глупо, что не осознал этого раньше. Все, что мне нужно было сделать, это заменить перевод, как показано ниже;

Я также узнал, что MovePosition в основном действует как перевод (если вы делаете это так), за исключением того, что он также учитывает столкновения с ним.

Источник

Rigidbody unity не работает

public bool isGrounded = false ;
public Rigidbody rigid ;
public float footheight = — 0.2f ;

void Update ( ) <
if ( isGrounded )
<
rigid. AddForce ( > ходьба , ForceMode. VelocityChange ) ;
>

//доп гравитация
rigid. AddForce ( new Vector3 ( 0, Physics. gravity . y * rigid. mass , 0 ) ) ;
>

void FixedUpdate ( ) <
isGrounded = false ;
>

void OnCollisionStay ( Collision collisionInfo ) <
foreach ( ContactPoint contact in collisionInfo. contacts ) <
if ( contact. point . y transform . position . y — footheight ) //isGrounded = true; если колизия происходит не выше указанной точки
<
Debug. DrawRay ( contact. point , contact. normal , Color. red ) ;
isGrounded = true ;
>
>
>

Re: Почему персонаж с rigidbody зависает в воздухе?

getAlex 11 июн 2015, 14:57

public bool isGrounded = false ;
public Rigidbody rigid ;
public float footheight = — 0.2f ;

void Update ( ) <
if ( isGrounded )
<
rigid. AddForce ( > ходьба , ForceMode. VelocityChange ) ;
>

//доп гравитация
rigid. AddForce ( new Vector3 ( 0, Physics. gravity . y * rigid. mass , 0 ) ) ;
>

void FixedUpdate ( ) <
isGrounded = false ;
>

void OnCollisionStay ( Collision collisionInfo ) <
foreach ( ContactPoint contact in collisionInfo. contacts ) <
if ( contact. point . y transform . position . y — footheight ) //isGrounded = true; если колизия происходит не выше указанной точки
<
Debug. DrawRay ( contact. point , contact. normal , Color. red ) ;
isGrounded = true ;
>
>
>


OnCollisionStay -дополнительные тормоза и вызов. Посмотрите в профайлер на 10к элементов.
foreach (ContactPoint contact in collisionInfo.contacts) — 100 точек, каждую обрабатывать каждый степ. Ну да.
FixedUpdate()< isGrounded=false;>. isGrounded = true; — Да, давайте ещё пару раз их поменяем туда-назад за 1 степ

Источник

Rigidbody

class in UnityEngine

Description

Управляет положением объекта через имитацию физики.

Adding a Rigidbody component to an object will put its motion under the control of Unity’s physics engine. Even without adding any code, a Rigidbody object will be pulled downward by gravity and will react to collisions with incoming objects if the right Collider component is also present.

Rigidbody также имеет scripting API, который позволит вам применить силы к объекту и контролировать его на физически реалистичном пути. Например, поведение машины может быть определено в силах, приложенных к колесам. Учитывая эту информацию, физический движок может справляться с множеством других аспектов движения машины, она будет реалистично ускоряться и корректно реагировать на коллизии.

В скрипте функция FixedUpdate рекомендуется как место для применения сил и изменения настроек Rigidbody (в противоположность Update, которая используется для большинства других задач). Причина этого в том, что физика обновляется в измеряемых временных шагах, которые не совпадают с обновлением кадров. FixedUpdate вызывается немедленно перед каждым физическим обновлением и все изменения, сделанные в нем , будут обработаны сразу же.

Большинство проблем при запуске с Rigidbody в том, что игровая физика кажется запущенной в режиме «slow motion» (замедленного движения). На самом деле это из за масштаба (scale) ваших моделей. Настройки гравитации по умолчанию допускают что один мировой юнит (единица) соответствует одному метру. В играх без использования физики юниты не имеют особого значения, можно сделать их всех масштабом в 100. Но когда используется физика, они будут обработаны как очень большие объекты. Если большой масштаб используется для объектов, которые должны быть маленькими, они будут казаться падающими очень медленно — физический движок будет принимать их за большие объекты, падающие на очень большое расстояние. Имея это ввиду, не забудьте сохранить масштаб ваших объектов более-менее приближенном к реальному (для автомобиля это примерно 4 юнита = 4 метра, к примеру).

Источник

Читайте также:  Меня бросила девушка что не работаю
Оцените статью