Я пытаюсь сохранить MethodInfo в скрипте через окно редактора. Когда я создаю скрипт, который должен помнить информацию о методе, он работает хорошо, но всякий раз, когда единство перекомпилируется, (Run-Time, скрипт изменился или перезапуск единицы), переменная MethodInfo была сброшена на null. Я пробовал сериализацию класса, который сохраняет его, и делает MethodInfo a SerializedField,Сохранение переменной MethodInfo в Unity EditorWindow to Component, var сбрасывается при компиляции
Что происходит именно так: я выбираю компонент, принадлежащий GameObject, и MethodInfo, принадлежащий этому компоненту. Затем создайте новый GameObject, содержащий скрипт с переменными для GameObject, Component & MethodInfo. Затем я устанавливаю эти переменные в выбранные vars. До сих пор это работает. Когда единица снова компилируется, GameObject и компонент все еще сохраняются, но MethodInfo обращается к null.
Любая помощь была бы принята с благодарностью.
Спасибо за ответ, я понял то же самое, что это именно то, что я сделал, мне не нравятся эти уродливые хаки, хотя надеялся на более чистое решение –
Ну, если вы хотите вызвать методы с помощью Reflection, используя особенности Reflection - единственная разумная вещь. Unity использует ту же самую механику для реализации UnityEvents (как используется Unity UI). Может быть, они именно то, что вы ищете? Если нет, просьба дать более подробную информацию о том, что вы пытаетесь выполнить, чтобы люди могли предложить альтернативы. –