Как сделать чтобы объект не проходил сквозь стены в unity
Обновлено: 25.04.2024
Как сделать чтобы объект не проходил сквозь стены в unity
Quote ( lorenze )
не проще ли слегка увеличить колизийный объём у персонажа или у статической модели?
А вот это мягко говоря необдуманный совет.
В данном случае колайдер придеться раздуть до сферы и ГГ перестанет пролазить в двери. (они как известно имеют ограниченные размеры).
Иначе при наклоне вниз камера все равно смотрит сквозь стены.
Quote ( lorenze )
что за бред сивой кобылы? )
warr11r, предложил одно из реальных решений проблемы.
Кстати реально полезнее вашего совета.
заслуженный участник
Сейчас нет на сайте
Quote ( Левша )
А вот это мягко говоря необдуманный совет. В данном случае колайдер придеться раздуть до сферы и ГГ перестанет пролазить в двери. (они как известно имеют ограниченные размеры). Иначе при наклоне вниз камера все равно смотрит сквозь стены.
Зачем же до сферы? )
В ряде случаев хватит 30-50 см невидимого бардюра на стенах ) либо подобного выступа на колизийном объёме персонажа, так же контроль камеры важен.
Quote ( Левша )
warr11r, предложил одно из реальных решений проблемы. Кстати реально полезнее вашего совета.
почти ветеран
Сейчас нет на сайте
Quote ( lorenze )
скрипт по отталкиванию от стены само по себе глупость(он в таком случае через теже узкие двери также не пройдёт ), если уж так критичны моменты просвета, то надо работать камерой и слоями/группами рендеринга. Во вторых лишняя нагрузка лишними скриптами ) А кол-во объектов может быть и гигантским.
Я и не писал что это оптимально, но реально.
Quote ( lorenze )
В ряде случаев хватит 30-50 см невидимого бардюра на стенах
заслуженный участник
Сейчас нет на сайте
Quote ( Левша )
Я и не писал что это оптимально, но реально.
Именно о том и речь, какать можно и стоя на руках, но неудобно да и обгадится можно ))
Quote ( Левша )
Конкретно в unity, не поможет, если префаб наклонить вперед камера все равно провалится в стену, именно до сферы придеться наращивать.
Так зачем префаб наклонять, если можно управлять только камерой?)
Quote ( Левша )
Но это еще пол беды, пробоины пуль в воздухе висеть будут на расстоянии коллайдера, или все придеться усложнять, так что еще не известно чье предложение более геморное.
Персонаж проходит сквозь стену (Коллайдеры стоят) [дубликат]
Изначально использовал метод перемещения такой :прибавлял к *.position transform.forward/right. Но сейчас возникла проблема, иногда при "столкновении" с объектом я прохожу через стену. Главное предположение - тонкий коллайдер, т.е. у меня прибавление к позиции гораздо больше толщины, но возникает проблема другая, что нужно сделать, чтобы не возникала такая проблема. Вектор изменить не могу, т.к. скорость измениться, а толщину Коллайдера тоже, так как придётся переделывать некоторые модельки. Пробовал через AddForce, но мешает ускорение, так же пытался использовать *.velocity, но не могу одновременно идти, например, прямо и вправо.
Можете посоветовать другие способы передвижения(AWSD)?
Формально значения берутся со стрелочек или с штурвальчика на геймпаде и возможно с WASD -- но не уверен, а проверять влом. ( Input.GetAxis ("Horizontal"); ) от такого кода не будет постоянного ускорения как видно из официального видеопримера.
Изменение параметров указанных в ответе Stranger in the Q приведет к лишним затратам ресурсов. Это делать нежелательно. Но допустимо если движение изначально реализованы по-человечески, а не через "телепортацию", как в даном случае.
пытался использовать *.velocity, но не могу одновременно идти, например, прямо и вправо.
Через Volocity так же можно сделать движение и в том числе диагональное, как того хочется.
Уверяю, в интернете можно найти примеры. Вот код из головы который поддерживает бег по диагонали, который можно попробовать довести до толка:
Как сделать чтобы персонаж не проходил сквозь объект?
Пройдите урок по работе с Collisions, лучше официальный, разберетесь, что к чему, и получите ответы на все вопросы. Сейчас Вы похоже совсем не понимаете, что происходит.
Move Position не для вас, скорее всего. Для 3д игр я вам советую Character Controller и его метод движения Move.
Для 2д игр движение в RigidBody с помощью velocity.
Move Position это такой метод,что не для управления персонажем и взаимодействия со стенами
Можно ли предотвратить прохождение кинематического объекта сквозь стены?
Задача кинематического объекта двигаться игнорируя физику и при этом физически взаимодействуя с другими объектами, отталкивая их (не себя).
Получается ваш объект двигается вне физики, вручную, и вы сами получается считаете ему физику. Тогда вам надо учитывать в ваших рассчетах стены и препятствия.
Либо не делать его кинематическим, двигать используя физику в Rigidbody и отскакивать от стен манипулируя свойствами физического материала. Это будет физически правильно, сквозь стены проходить не будет, но надо всю схему управления пересоздать под управление физикой, а не писать саму "физику".
Как сделать чтобы персонаж не проходил сквозь стены в unity.
Коллайдер есть, благодаря ему квадрат стоит на этой структуре и не падает в пустоту, но он почему то проходит сквозь стены этой структуры.Дополнен 1 месяц назад
Риджитбоди тоже есть.
Лучший ответ
добавь колайдер на стены и убери везде is trigger если стоит
Иван ГорбенкоУченик (167) 1 месяц назад
и везде где нужна твёрдая поверхность, добавляй колайдер
Yaroslav NesterovУченик (58) 1 месяц назад
персонаж проходит сквозь коллайдеры
Yaroslav Nesterov, добавь игроку коллайдер можно капсульный можно просто квадрат
Остальные ответы
Как ты его двигаешь?
Если через .transform - то ему будет плевать на коллайдеры. Если нет - проверь не включено ли в RigidBody IsKinematic.
Unity 2D Top-Down (Основы) Прозрачные стены.
Я только начал изучать Unity и я хочу сделать что-то наподобие 2D игры с камерой Top-Down. Сам вопрос, как сделать так, чтобы персонаж при движении не проходил через стены? Я пробовал разные варианты передвижения и само собой у меня стоят: rigidbody на игроке и коллайдеры на стене и игроке. Можете подсказать как сделать стены "твердыми". Возможно те варианты скриптов были неверны и я прошу ссылку или скриншот верных кодов) или же ошибка в самом юнити?
Как сделать чтобы объект не проходил сквозь стены в unity
Чужой компьютер
Просмотр темы 8
прохождение сквозь объекты
Нравится Показать список оценивших
Нравится Показать список оценивших
поставь Mesh Collider на объекты и не будет проходить
Нравится Показать список оценивших
Нравится Показать список оценивших
блин все равно не помогает
Нравится Показать список оценивших
блин ребят помогите
Нравится Показать список оценивших
Валера, Добавь в предмет Mesh Collider и выбери предмет который тебе нужен ОН ЧАСТО ВЫБЕРАЕТЬСЯ САМ НО если нет то покажи его
Как сделать чтобы объект не проходил сквозь стены в unity
Чужой компьютер
Создание игр на движке Unity
вернуться к странице
Как сделать чтобы объект не проходил сквозь стены в unity
И к дороге или игроку прикрепи скрипт для отладки в консоле
P.S Rigidbody вешай на дорогу и скрипт если захочешь тоже.
Сейчас нет на сайте ЦитатаПопробуй добавить ему физику(Rigidbody) и убери галочку с гравитации.
Так как я понял у тебя объект просто не может найти другой объект на который опереться.
И к дороге или игроку прикрепи скрипт для отладки в консоле
Код
void OnCollisionEnter(Collision myCol)
<
if (myCol.gameObject.name == "Тут имя объекта(дороги) как на сцене")
<
Debug.Log ("Объект стукнулся");
>
>
P.S Rigidbody вешай на дорогу и скрипт если захочешь тоже.
постоянный участник Сейчас нет на сайтеusing UnityEngine;
using System.Collections;
public class . НАЗВАНИЕ. MonoBehaviour
Скрипт вешаешь на игрока
P.S То что выделено воск. знаками, заменяешь на название своего скрипта(как в Project).
В юнити и в скрипте должно быть одно название.
Читайте также: