Страница 1 из 1

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

СообщениеДобавлено: 20 янв 2018, 20:18
AABB
Раньше я тоже парился с 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 не работает. Почему?

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

СообщениеДобавлено: 20 янв 2018, 22:08
samana
Попробуйте регистрировать Undo именно для Mesh-а, ведь вы его изменяете, а не this.

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

СообщениеДобавлено: 21 янв 2018, 15:58
AABB
Спасибо. Кажется, я вчера разные варианты перепробовал и не получалось. А сегодня заработало так

Синтаксис:
Используется csharp
        Undo.RecordObjects(new Object[] { collider, filter }, "Paint Inside");
        collider.sharedMesh = mesh;
        filter.sharedMesh = mesh;