forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Collider (http://forum.boolean.name/showthread.php?t=17888)

SGREED 15.02.2013 04:21

Collider
 
Вопрос о коллайдерах.
Есть mesh collider , использываеться для твердого тела, что бы обьекты или игрок не проходил мимо этого обьекта.
Для него задаеться mesh эта маска этого обьекта.
есть is trigger и material , вот material для чего он незнаю?
Можна ли без mesh сделать модель твердой? только бех box, sphere и так дальше, есть ли другой способ?

pax 15.02.2013 09:15

Ответ: Collider
 
material - это физический материал, который определяет трение и пружинистость тела.
Цитата:

Можна ли без mesh сделать модель твердой?
Нельзя, либо MeshCollider, либо кллайдеры примитивы.

burovalex 21.02.2013 15:45

Ответ: Collider
 
Когда работал в блитце, там можно было к динамическим телам прикручивать Кулл меши - это физические выпуклые тела, которые я сам лепил в 3д максе.
А здесь такое можно сделать?
Ну т.е. чтобы меш был одной формы, а коллайдер другой?

Mr_F_ 21.02.2013 16:15

Ответ: Collider
 
Цитата:

Кулл меши
hull?
можно наверное положить детальный объект в иерархию недетального, а недетальный оставить без рендерера, но с коллайдером.

pax 21.02.2013 16:31

Ответ: Collider
 
AddComponent<MeshCollider>().convex = true;

burovalex 21.02.2013 17:43

Ответ: Collider
 
Вау, прикольно, юнити сам преобразует в хулл?!!
Я вот только синтаксис такой немного не понимаю.
Т.е. ты этим примером и создаешь коллайдер и сразу ему настраиваешь коллайдер?
т.е. ты сокращаешь две строки?
Collider mc = (Collider)AddComponent<MeshCollider>();
mc.convex = true;

seaman 21.02.2013 17:47

Ответ: Collider
 
Цитата:

этим примером и создаешь коллайдер и сразу ему настраиваешь коллайдер?
Да.
Цитата:

которые я сам лепил в 3д максе.
Здесь можно также. Добавляешь компонент MeshCollider в инспекторе. В этот добавленный компонент (в поле mesh) перетаскиваешь твой созданный в максе меш.
То же самое можно сделать и программно.

burovalex 21.02.2013 18:02

Ответ: Collider
 
Хотел щас закрепить полученные знания на практике. Но столкнулся с тем что меши добавленные в префаб, всё равно являются отдельными мешами. А нету какой нибудь кнопочки чтобы объединить в один меш?

EvilOkta 21.02.2013 18:17

Ответ: Collider
 
Цитата:

Сообщение от burovalex (Сообщение 253417)
Хотел щас закрепить полученные знания на практике. Но столкнулся с тем что меши добавленные в префаб, всё равно являются отдельными мешами. А нету какой нибудь кнопочки чтобы объединить в один меш?

может добавлять не сам меш в префаб, а мешкомпонент (это просто мысль, на практике нет возможности проверить)

как я понял булевские операции объединения мешей в Unity стандартными средствами не реализованы

pax 21.02.2013 19:57

Ответ: Collider
 
Склеивать меши нет кнопочки. Можно только программно http://docs.unity3d.com/Documentatio...ineMeshes.html

burovalex 21.02.2013 21:05

Ответ: Collider
 
Но таким образом должна текстурная развертка сбиться, тогда все равно придётся 3д редакторе ковыряться, а если текстуры не объединятся, значит и смысла не будет - получится что объединённый меш все равно будет иметь несколько сюрфейсов, что особо не прибавляет производительности.
С блитца ещё уяснил )

А подскажите ещё, можно както изменить центр меша, префаба.

На префаб у меня получилось только создать пустой объект, расположить его где надо, и с него начинать собирать префаб. Но это лишний элемент, только ресурс тратить..

pax 21.02.2013 21:20

Ответ: Collider
 
Развертка не собьется, если все меши имеют одну текстуру, то их можно склеить.

Центр префаба изменить нельзя, разве что положить его в пустой объект. Нельзя потому что меши имеют вершины в определенных в 3d пакете положениях относительно объекта, на котором они висят.

SGREED 22.02.2013 02:23

Ответ: Collider
 
Таков вопрос, у меня не получаеться
вот есть таков скрипт
PHP код:

void OnTriggerEnter(Collider zombie) {
        
        
realHeals -= 10;
   }


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

SGREED 22.02.2013 03:04

Ответ: Collider
 
все я разобрался)
OnTriggerEnter - отвечает за вход в триггер и срабатывает только раз
а OnTriggerStay - отвечает за вход в триггер продерживаясь там действие постоянно повторяеться =)
PHP код:

void OnTriggerStay(Collider zombie) {
        
        
realHeals -=(1);
   }




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

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