 |
15.02.2013, 04:21
|
#1
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Collider
Вопрос о коллайдерах.
Есть mesh collider , использываеться для твердого тела, что бы обьекты или игрок не проходил мимо этого обьекта.
Для него задаеться mesh эта маска этого обьекта.
есть is trigger и material , вот material для чего он незнаю?
Можна ли без mesh сделать модель твердой? только бех box, sphere и так дальше, есть ли другой способ?
|
(Offline)
|
|
15.02.2013, 09:15
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Collider
material - это физический материал, который определяет трение и пружинистость тела.
Можна ли без mesh сделать модель твердой?
|
Нельзя, либо MeshCollider, либо кллайдеры примитивы.
|
(Offline)
|
|
21.02.2013, 15:45
|
#3
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Collider
Когда работал в блитце, там можно было к динамическим телам прикручивать Кулл меши - это физические выпуклые тела, которые я сам лепил в 3д максе.
А здесь такое можно сделать?
Ну т.е. чтобы меш был одной формы, а коллайдер другой?
__________________
|
(Offline)
|
|
21.02.2013, 16:15
|
#4
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Collider
hull?
можно наверное положить детальный объект в иерархию недетального, а недетальный оставить без рендерера, но с коллайдером.
|
(Offline)
|
|
21.02.2013, 16:31
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Collider
AddComponent<MeshCollider>().convex = true;
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.02.2013, 17:43
|
#6
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Collider
Вау, прикольно, юнити сам преобразует в хулл?!!
Я вот только синтаксис такой немного не понимаю.
Т.е. ты этим примером и создаешь коллайдер и сразу ему настраиваешь коллайдер?
т.е. ты сокращаешь две строки?
Collider mc = (Collider)AddComponent<MeshCollider>();
mc.convex = true;
__________________
|
(Offline)
|
|
21.02.2013, 17:47
|
#7
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Collider
этим примером и создаешь коллайдер и сразу ему настраиваешь коллайдер?
|
Да.
которые я сам лепил в 3д максе.
|
Здесь можно также. Добавляешь компонент MeshCollider в инспекторе. В этот добавленный компонент (в поле mesh) перетаскиваешь твой созданный в максе меш.
То же самое можно сделать и программно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.02.2013, 18:02
|
#8
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Collider
Хотел щас закрепить полученные знания на практике. Но столкнулся с тем что меши добавленные в префаб, всё равно являются отдельными мешами. А нету какой нибудь кнопочки чтобы объединить в один меш?
__________________
|
(Offline)
|
|
21.02.2013, 18:17
|
#9
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Collider
Сообщение от burovalex
Хотел щас закрепить полученные знания на практике. Но столкнулся с тем что меши добавленные в префаб, всё равно являются отдельными мешами. А нету какой нибудь кнопочки чтобы объединить в один меш?
|
может добавлять не сам меш в префаб, а мешкомпонент (это просто мысль, на практике нет возможности проверить)
как я понял булевские операции объединения мешей в Unity стандартными средствами не реализованы
|
(Offline)
|
|
21.02.2013, 19:57
|
#10
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Collider
Склеивать меши нет кнопочки. Можно только программно http://docs.unity3d.com/Documentatio...ineMeshes.html
|
(Offline)
|
|
21.02.2013, 21:05
|
#11
|
Разработчик
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений (для 60 пользователей)
|
Ответ: Collider
Но таким образом должна текстурная развертка сбиться, тогда все равно придётся 3д редакторе ковыряться, а если текстуры не объединятся, значит и смысла не будет - получится что объединённый меш все равно будет иметь несколько сюрфейсов, что особо не прибавляет производительности.
С блитца ещё уяснил )
А подскажите ещё, можно както изменить центр меша, префаба.
На префаб у меня получилось только создать пустой объект, расположить его где надо, и с него начинать собирать префаб. Но это лишний элемент, только ресурс тратить..
__________________
|
(Offline)
|
|
21.02.2013, 21:20
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Collider
Развертка не собьется, если все меши имеют одну текстуру, то их можно склеить.
Центр префаба изменить нельзя, разве что положить его в пустой объект. Нельзя потому что меши имеют вершины в определенных в 3d пакете положениях относительно объекта, на котором они висят.
|
(Offline)
|
|
22.02.2013, 02:23
|
#13
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Collider
Таков вопрос, у меня не получаеться
вот есть таков скрипт
void OnTriggerEnter(Collider zombie) { realHeals -= 10; } }
этот скрипт отнимает мне 10 здоровья когда соприкасаюсь с колайдером врага, но дело в том что оно отнимает его один раз, как только я отойду и потойду он снова снимет 10
как правильно сделать что бы он снимал постоянно при соприкосновении одного раза, ну как то так?
|
(Offline)
|
|
22.02.2013, 03:04
|
#14
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Collider
все я разобрался)
OnTriggerEnter - отвечает за вход в триггер и срабатывает только раз
а OnTriggerStay - отвечает за вход в триггер продерживаясь там действие постоянно повторяеться =)
void OnTriggerStay(Collider zombie) { realHeals -=(1); } }
Последний раз редактировалось SGREED, 22.02.2013 в 03:06.
Причина: неверное
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:29.
|