После замены mesh'а видимость считается неправильно [РЕШЕНО]

Ошибки и баги Unity3D

После замены mesh'а видимость считается неправильно [РЕШЕНО]

Сообщение alexz 15 июн 2011, 12:53

1. Программно создаю gameobject, создаю сетку (mesh) и присваиваю объекту: meshFilter.sharedMesh = mesh. Все работает нормально.

2. Создаю новую сетку, присваиваю её тому же объекту. Новую сетку видно видно, MeshCollider тоже меняется нормально, но видимость всего объекта считается Unity так, как-будто у объекта сетка осталась старой:

На этой картинке выделен один мой объект, с сеткой, состоящей из множества кубиков я-ля Minecraft. В первой сетке была только группа кубиков, которая справа; но в данный момент я уже присвоил объекту новую сетку, в которой к старым кубикам добавились новые вверху слева.
1.jpg


На этой картинке я повернул камеру так, чтобы группа старых кубиков вышла за экран. В результате весь объект пропал.
2.jpg


Проверял mesh.bounds и meshRenderer.bounds - они всегда правильные, соответствуют присвоенной сетке.
У вас нет доступа для просмотра вложений в этом сообщении.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение waruiyume 15 июн 2011, 12:58

mesh.RecalculateBounds() пробовали ?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение alexz 15 июн 2011, 13:17

Я создаю новую сетку через
var mesh = new Mesh();
mesh.CombineMeshes(....);

После CombineMeshes у mesh'а на выходе bounds и так правильные. Но я пробовал вызвать ещё mesh.RecalculateBounds(), ничего не меняется.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение alexz 15 июн 2011, 18:03

Нашёл решение ― после того, как объект получил новую сетку, надо его выключить и включить обратно:

gameobject.active = false;
gameobject.active = true;
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение gnoblin 15 июн 2011, 18:35

прикольное решение!
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение discouraged_one 15 июн 2011, 20:03

alexz писал(а):Нашёл решение ― после того, как объект получил новую сетку, надо его выключить и включить обратно:

gameobject.active = false;
gameobject.active = true;

какая версия? если 3.3 можно будет баг репорт увидеть?
* а то как-то странно заставлять людей делать такие манипуляции ;-)
Unity Technologies
Аватара пользователя
discouraged_one
Unity Technologies
 
Сообщения: 197
Зарегистрирован: 19 май 2010, 15:56

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение alexz 15 июн 2011, 21:13

Отправил баг-репорт, дело №408502.

Тестовый проект, если кому интересно: http://dl.dropbox.com/u/8203557/Visibil ... roblem.zip
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение discouraged_one 16 июн 2011, 12:48

http://answers.unity3d.com/questions/56 ... ating.html

meshFilter.sharedMesh = newMesh;
meshFilter.sharedMesh.RecalculateBounds();

перепишу как feature request чтобы не надо было такой фихней страдать 8)
Unity Technologies
Аватара пользователя
discouraged_one
Unity Technologies
 
Сообщения: 197
Зарегистрирован: 19 май 2010, 15:56

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение alexz 16 июн 2011, 12:56

discouraged_one писал(а):meshFilter.sharedMesh.RecalculateBounds();

Никогда бы не догадался :)
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: После замены mesh'а видимость объекта считается неправильно

Сообщение Neodrop 16 июн 2011, 12:57

Ага. Шибко не очевидно. :-o
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2