forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Столкновение двух объектов (C#) (http://forum.boolean.name/showthread.php?t=16547)

SaM_ 28.03.2012 01:21

Столкновение двух объектов (C#)
 
Как сделать, что бы происходило событие когда колайдер объекта 'a' касался колайдера объекта 'b'. При этом сам скрипт не привязан к 'a' или 'b'.

Lestar 28.03.2012 01:33

Ответ: Столкновение двух объектов (C#)
 
Повесить в позишен любого из обьектов триггер идентичный самому обьекту и снимать с него событие.

SaM_ 28.03.2012 02:28

Ответ: Столкновение двух объектов (C#)
 
Lestar, не мог бы ты привести пример, буду благодарен :3

Lestar 28.03.2012 06:55

Ответ: Столкновение двух объектов (C#)
 
Например имеем два шара, на один из них вешаем думик с координатами, совпадающими с рутовым обьектом. На думик добавляем примитив коллайдер сферу, делаем коллайдер диаметром как у рутового обьекта. На думик вешаем скрипт, обрабатывающий столкновение.

pax 28.03.2012 07:55

Ответ: Столкновение двух объектов (C#)
 
А почему не хочется вешать скрипт? У меня такое подозрение, что схема с триггером будет работать через раз...

SaM_ 28.03.2012 17:49

Ответ: Столкновение двух объектов (C#)
 
Цитата:

обрабатывающий столкновение.
Вот в этом и заключается вопрос - как это все выглядит в C#, я не понимаю как пользоватся oncollider.stay и другими подобными функциями связанными с coll :(

moka 28.03.2012 17:58

Ответ: Столкновение двух объектов (C#)
 
При чём здесь C#?
C# - это язык, .Net - программная платформа, Unity - инструмент.
В твоём случае, речь идёт о Unity, а не о C#.

pax 28.03.2012 18:02

Ответ: Столкновение двух объектов (C#)
 
Если отвечать на вопрос поставленный в первом посте: нельзя без привязки скриптов. Эвенты столкновения приходят в скрипты объектов, участвующих в столкновении.

upd: дальше эти эвенты можешь отсылать куда угодно.

SaM_ 28.03.2012 18:03

Ответ: Столкновение двух объектов (C#)
 
MoKa, я думаю не сложно догадаться, что речь идет о разновидности C#, который используется в Unity3D. Людям, здесь сидящем, не надо каждый раз объяснять в какой раздел форума они заходят. ;)

moka 28.03.2012 18:24

Ответ: Столкновение двух объектов (C#)
 
Цитата:

Сообщение от SaM_ (Сообщение 223897)
MoKa, я думаю не сложно догадаться, что речь идет о разновидности C#, который используется в Unity3D.

Какой РАЗНОВИДНОСТИ? :4to:
Читай (кликабельно):
C#
Unity3D

Если внимательно читал, то поймёшь, что есть ЯП (Язык Программирования), такие как: C++, BlitzBasic, C#, Java, Assembler (и т.д.), и есть инструменты (движки в данном случае), такие как: Ogre, Irrlicht, Unity, UnrealEngine, Xors3D и т.д.
Это две разные вещи, и сильно отличаются.

То что там евенты, и всякая архитектурная хрень - это реализация самого Unity, а не ЯП, который лишь даёт возможность реализации подобных фишек.

Это как спрашивать вопрос про Xors3D движёк забинженный к С++, и называть тему: как в через С++ загрузить текстуру. Что на самом деле относится прямым образом к Xors3D, а не к С++.

Цитата:

Сообщение от SaM_ (Сообщение 223897)
Людям, здесь сидящем, не надо каждый раз объяснять в какой раздел форума они заходят. ;)

Если человек зашёл в раздел под названием "Unity", то он следственно ожидает видеть материал по Unity, а не по ЯП, т.к. для самого C# есть отдельный раздел, т.к. сам язык, представляет из себя намного богатые возможности, а не только выступающий в роли языка для разработки используя Unity..
Да и судя по тому как ты "разделяешь" ЯП и инструменты, видимо стоит таки объяснять и не только это.

SaM_ 28.03.2012 19:02

Ответ: Столкновение двух объектов (C#)
 
MoKa, а по теме есть что сказать? Жаль...

pax, а если скрипт все же привязан к одному из объектов, то как выглядит код?

moka 28.03.2012 19:40

Ответ: Столкновение двух объектов (C#)
 
Цитата:

Сообщение от SaM_ (Сообщение 223906)
MoKa, а по теме есть что сказать? Жаль...

Хм, я смотрю ты язвить молодец.

Цитата:

Сообщение от SaM_ (Сообщение 223906)
pax, а если скрипт все же привязан к одному из объектов, то как выглядит код?

Документация с примером обработки коллизии: http://unity3d.com/support/documenta...sionEnter.html
Если нужно обработать в отдельном месте, то создай например singleton класс, с функцией обработки, и далее реализуй там обработку как если обрабатывал бы в скрипте самого объекта. И вызывай как обычный метод синглтон класса передавая данные о коллизии.

ЗЫ, поддерживается ли в Unity наследование классов для реализации сложных объектов? Если да, почему не создать дочерный класс, который бы реализовывал обработку коллизии, и далее уже наследовать свои объекты от него.

ЗЗЫ, и вопрос твой видимо исходит из весьма глупой мотивации, не опишешь задачу?

SaM_ 28.03.2012 19:54

Ответ: Столкновение двух объектов (C#)
 
MoKa, спс. Но все же проблема в непонимании структуры примера в документации. Например, что значит '(Collision collision)'... Поэтому надеялся, что кто-то приведет более 'прозрачный' пример.
Задача была сделать пик-ап предмета: когда персонаж касается сферы вокруг объекта, то можно совершить какое-то событие, но до меня дошло, что тут лучше подсчитывать расстояние от предмета до персонажа.

pax 28.03.2012 20:01

Ответ: Столкновение двух объектов (C#)
 
Думаю надо вооружиться переводчиком и читать справку, разбирая названия всех свойств и методов объектов ;)

Morganolla 25.10.2014 02:24

Ответ: Столкновение двух объектов (C#)
 
Чтобы не плодить еще одну тему попробую задать вопрос здесь.
Мне нужно добиться абсолютно упругого столкновенияв 3Д физике.
Сделал Bouncing=1, убрал скорости засыпания и т.п. - rigidbody.sleepVelocity = 0; drag=0;...
Но при этом, столкновение получается упругое, только если скорость достаточно большая... при малых скоростях наблюдается эффект прилипания как бы.
Что еще можно настроить? Чтобы при малых скоростях было упругое столкновение?


Часовой пояс GMT +4, время: 03:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot