Undo изменений мэша не работает - почему всё так сложно?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Undo изменений мэша не работает - почему всё так сложно?

Сообщение AABB 20 янв 2018, 20:18

Раньше я тоже парился с Undo, но в итоге всё получалось. А сейчас, кажется делаю то же самое, но не работает.

Есть ГО с мэшем в сцене. На нём скрипт, Когда я тыкаю мышкой в объект, то в классе MonoBehavior запускается функция

Синтаксис:
Используется csharp
    public void EditMesh()
    {
        Mesh mesh = new Mesh();
//... создание нового Мэша

        Undo.RegisterCompleteObjectUndo(this, "Paint Inside");
        collider.sharedMesh = mesh;
        filter.sharedMesh = mesh;

 


Undo не работает! пробовал Undo.RecordObject, пробовал скармливать ей отдельно мэш или компоненент. Всё равно undo не работает. Почему?
AABB
UNIт
 
Сообщения: 134
Зарегистрирован: 05 фев 2014, 15:52

Re: Undo изменений мэша не работает - почему всё так сложно?

Сообщение samana 20 янв 2018, 22:08

Попробуйте регистрировать Undo именно для Mesh-а, ведь вы его изменяете, а не this.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Undo изменений мэша не работает - почему всё так сложно?

Сообщение AABB 21 янв 2018, 15:58

Спасибо. Кажется, я вчера разные варианты перепробовал и не получалось. А сегодня заработало так

Синтаксис:
Используется csharp
        Undo.RecordObjects(new Object[] { collider, filter }, "Paint Inside");
        collider.sharedMesh = mesh;
        filter.sharedMesh = mesh;
AABB
UNIт
 
Сообщения: 134
Зарегистрирован: 05 фев 2014, 15:52


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 26