![]() |
Столкновение двух объектов (C#)
Как сделать, что бы происходило событие когда колайдер объекта 'a' касался колайдера объекта 'b'. При этом сам скрипт не привязан к 'a' или 'b'.
|
Ответ: Столкновение двух объектов (C#)
Повесить в позишен любого из обьектов триггер идентичный самому обьекту и снимать с него событие.
|
Ответ: Столкновение двух объектов (C#)
Lestar, не мог бы ты привести пример, буду благодарен :3
|
Ответ: Столкновение двух объектов (C#)
Например имеем два шара, на один из них вешаем думик с координатами, совпадающими с рутовым обьектом. На думик добавляем примитив коллайдер сферу, делаем коллайдер диаметром как у рутового обьекта. На думик вешаем скрипт, обрабатывающий столкновение.
|
Ответ: Столкновение двух объектов (C#)
А почему не хочется вешать скрипт? У меня такое подозрение, что схема с триггером будет работать через раз...
|
Ответ: Столкновение двух объектов (C#)
Цитата:
|
Ответ: Столкновение двух объектов (C#)
При чём здесь C#?
C# - это язык, .Net - программная платформа, Unity - инструмент. В твоём случае, речь идёт о Unity, а не о C#. |
Ответ: Столкновение двух объектов (C#)
Если отвечать на вопрос поставленный в первом посте: нельзя без привязки скриптов. Эвенты столкновения приходят в скрипты объектов, участвующих в столкновении.
upd: дальше эти эвенты можешь отсылать куда угодно. |
Ответ: Столкновение двух объектов (C#)
MoKa, я думаю не сложно догадаться, что речь идет о разновидности C#, который используется в Unity3D. Людям, здесь сидящем, не надо каждый раз объяснять в какой раздел форума они заходят. ;)
|
Ответ: Столкновение двух объектов (C#)
Цитата:
Читай (кликабельно): C# Unity3D Если внимательно читал, то поймёшь, что есть ЯП (Язык Программирования), такие как: C++, BlitzBasic, C#, Java, Assembler (и т.д.), и есть инструменты (движки в данном случае), такие как: Ogre, Irrlicht, Unity, UnrealEngine, Xors3D и т.д. Это две разные вещи, и сильно отличаются. То что там евенты, и всякая архитектурная хрень - это реализация самого Unity, а не ЯП, который лишь даёт возможность реализации подобных фишек. Это как спрашивать вопрос про Xors3D движёк забинженный к С++, и называть тему: как в через С++ загрузить текстуру. Что на самом деле относится прямым образом к Xors3D, а не к С++. Цитата:
Да и судя по тому как ты "разделяешь" ЯП и инструменты, видимо стоит таки объяснять и не только это. |
Ответ: Столкновение двух объектов (C#)
MoKa, а по теме есть что сказать? Жаль...
pax, а если скрипт все же привязан к одному из объектов, то как выглядит код? |
Ответ: Столкновение двух объектов (C#)
Цитата:
Цитата:
Если нужно обработать в отдельном месте, то создай например singleton класс, с функцией обработки, и далее реализуй там обработку как если обрабатывал бы в скрипте самого объекта. И вызывай как обычный метод синглтон класса передавая данные о коллизии. ЗЫ, поддерживается ли в Unity наследование классов для реализации сложных объектов? Если да, почему не создать дочерный класс, который бы реализовывал обработку коллизии, и далее уже наследовать свои объекты от него. ЗЗЫ, и вопрос твой видимо исходит из весьма глупой мотивации, не опишешь задачу? |
Ответ: Столкновение двух объектов (C#)
MoKa, спс. Но все же проблема в непонимании структуры примера в документации. Например, что значит '(Collision collision)'... Поэтому надеялся, что кто-то приведет более 'прозрачный' пример.
Задача была сделать пик-ап предмета: когда персонаж касается сферы вокруг объекта, то можно совершить какое-то событие, но до меня дошло, что тут лучше подсчитывать расстояние от предмета до персонажа. |
Ответ: Столкновение двух объектов (C#)
Думаю надо вооружиться переводчиком и читать справку, разбирая названия всех свойств и методов объектов ;)
|
Ответ: Столкновение двух объектов (C#)
Чтобы не плодить еще одну тему попробую задать вопрос здесь.
Мне нужно добиться абсолютно упругого столкновенияв 3Д физике. Сделал Bouncing=1, убрал скорости засыпания и т.п. - rigidbody.sleepVelocity = 0; drag=0;... Но при этом, столкновение получается упругое, только если скорость достаточно большая... при малых скоростях наблюдается эффект прилипания как бы. Что еще можно настроить? Чтобы при малых скоростях было упругое столкновение? |
Ответ: Столкновение двух объектов (C#)
|
Ответ: Столкновение двух объектов (C#)
Сделал по своему - укрупнил масштабы, чтобы скорости были побольше, и добавил небольшие нормальные приращения скорости при столкновении. Результат меня более-менее удовлетворил...)
|
Ответ: Столкновение двух объектов (C#)
Цитата:
Вот здесь Moka прав, у тебя не понимание это примера не из-за того что он не прозрачный, а из-за не понимания просто языка C# (ты сам пример привел, не понятно Collision collision, ну так это конструкция языка, Unity тут не причем, разве что имя класса из него) Поэтому для начала надо изучить хотя бы на минимальном уровне C# в отдельности от Unity а потом уже приступать к движку А то я заметил на форуме такую вещь, что люди не любят что то учить не связанное с играми а сразу подавай им свистелки всякие. Ведь хеллоу-ворлд это скучно, а уж наследование с полиморфизмов вообще ужас. И нет понимания что нужно сначала знать ЯП как говорит Мока, а уж потом разбираться в библиотеке |
Часовой пояс GMT +4, время: 05:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot