Даскер

+8
с 17.11.2025
1 подписчик
0 подписок

Ну так, мне нужно было решить проблему столкновений между CC и RB. Я ей описал подробно, что происходит при столкновениях, и что меня это не устраивает. Что делать? Она предлагает решение, но это решение создает новые проблемы, еще большие, предлагает решение для них, еще больше проблем, и потом возвращается к тому с чего мы начали. В общем цикл, и других вариантов она предложить не смогла. Она предлагала просто каждый раз по кругу. Я откладывал этот вопрос, делал что-то другое, потом возвращался к нему через пару недель, снова спрашивал и получал ровно те же ответы. Ну пока сам не додумался как решить. И таких ситуаций очень много. С компонентом DropDown, когда она предлагала перезаписать слайдер, а юнити говорил что я могу пойти нахрен со своим перезаписыванием(ничего не работало просто). С опять же физикой, когда я пытался сделать так, чтобы платформа катала игрока, а он не дрожал как на массажорном кресле, нейросеть не знала почему так происходит. Ну может я кривые промты делаю. Но суть в том, что я новичок, я вижу, что у меня ничего не работает, описываю что я вижу происходит на экране, я ведь не знаю как работает движок, и я не могу выдать какой то идеальный промт с полной информацией для нейросети. Потому что если бы я знал, что у меня перс дрожит на платформе, из-за одной настройки в движке, то я бы у нейросети даже и не спрашивал.

Я видел, основана на принципах камень ножницы бумага. Противник выбрал атаку, я парирование, и я победил. Я просматривал много игр и историй от небольших инди, в том числе и вашу, и того кто наверху отписался и делал "сокровища океана" с мальчиком по имени Сирап. Я смотрел, что делают другие и по какому пути они пошли.

Понимаете, как нейросеть обучили, так она и действует. Если ее обучили что два риджит боди, в иерархии родитель-дочка, плохо, то она будет стараться избегать решений в таком ключе. Она будет предлагать заменить CharacterController на RigidBody при этом, создав у вас в проекте другие проблемы. А решив их, создаст новые, решив их, создаст новые, и потом вернется к тому, что предложит вам заменить RigidBody обратно на CharacterController и круг замкнулся. Если нейросеть чего-то не знает, то она этого не знает. А думать, она не умеет.Поэтому фокусы о которых я рассказал выше - она вам не предложит сама. Если вы когда-то обучали чекпоинт или лору, сами, то вы поймете как это все работает.

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

Я видел вашу игру, и играл в подобное когда то. Если вы решите расширяться, то возникут проблемы. Например введете экономику в игре. Где чтобы получить зелье лечения его нужно скрафтить либо купить у другого игрока. А чтобы скрафтить отправиться на болота, там собрать ингредиенты, и если не повезет столкнуться с монстром или бандитами, или даже с другим игроком. После чего вернуться в город, арендовать алхимический дом для крафта зелий и там его скрафтить. А чтобы продать игроку нужно будет арендовать аптеку, и там в офлайн режиме игрок сможет продавать зелья лечения другим игрокам. Тоже самое касается брони, шахты, кузница. Введений каких-то гильдий, турниров, новых режимов битв, квестов, внешек(костюмов) для персонажей.

Я не знаю, что у вас за нейросеть, которая сможет все это вам связать и написать без ошибок. Но у меня чат-GPT предлагает использовать в игре rb.velocity хотя его нету давно в юнити, теперь там rb.linearVelocity. Он считает, что если обьект кинематический и если использовать rb.MovePosition(), то обьект будет учитывать физические столкновения, и не пройдет сквозь стену - это ложь, если поймаете его на лжи, он начнет придумывать, что стена чтобы сквозь нее не проходил кинематический обьект должна обладать особенным типом коллайдера, например скажет что там должен быть мешколлайдер+конвекс, и это тоже ложь и не поможет.

Я использую, на основном персонаже CharacterController а все остальное что должно шевелиться, RigidBody, из-за этого при взаимодействии игрока с физикой происходит ад. Игрок толкает обьекты как банки из под колы, даже если им установить вес в тонну. Поэтому мне приходится прибегать к фокусам, например чтобы ящик из видео, не улетал в стратосферу когда игрок к нему приблизился, делать его кинематикой, а когда игрок перешел в стейт толкания, делать его дочерним обьектом игрока, и отключать кинематику, вводя булевую переменную, отключая код из триггеров, чтобы дать юнити успокоиться после пересчета физики. Делать рейкаст коробки, по размерам коробки, в ту сторону куда толкается ящик, при этом еще и зоны тригерерных коллайдеров вынести в отдельный слой, и игнорировать этот слой, чтобы рейкаст реагировал именно на физические препятствия, и если он обнаружит препятствия запретить игроку двигаться в эту сторону, таким образом создается иллюзия что ящик уперся в стену или в другой обькт. Но нейросеть не любит фокусы. Для нее - то что я описал сложно и наверное глупо.

Аналогичный пример и противниками, чтобы игрок не мог их толкать при этом они работали по физике юнити, можно сделать фокус. Сделать в иерархии, один основной обьект и один дочерний, у обоих есть RigigBody, у обоих, коллайдеры. Но дочерний обьект кинематический, а основной нет. Установить им игнорирование физики друг друга, основному обьекту установить игнорирование физики игрока, а кинематическу установить, обязательное взаимодействие с игроком. Таким образом, игрок не сможет толкнуть противника, и тот не улетит в космос при столкновении. Но при этом будет корректно взаимодействовать со всем остальным миром и гравитацей. Но, нейросеть до этого не додумалась, более того, когда я сам предложил эту идею, она ее захейтила. Сказав что физика будет работать неадекватно. И да, она будет работать неадекватно, если не настроить физику как я сказал. Только после того как я сам досконально обьяснил и разложил свою идею по полочкам, нейросеть ее одобрила.

Юнити один из самых дружелюбных движков к новичкам. А учитывая что у вас карта 1650, вам UE вообще противопоказан. Вам подойдет RPGmaker, RenPy,Godot, и URP unity.

2