Редактировать: Я думал о том, как дать tl; dr здесь. Как насчет этого: инспектор ищет BaseObject. Как я могу заставить инспектора разрешить мне присваивать DerivedObject, полученный из BaseObject.Generic Inventory Unity
Я пытаюсь создать общую систему инвентаризации. Я опробовал систему инвентаря Brackey, но хотел расширить ее, включив в нее вещи, выходящие за рамки «предмета». Я хотел бы иметь классы «Key» или «Weapon», которые наследуют Item как базу, тогда как в Inventory Brackey есть несколько булевых полей, которые определяют, может ли он быть экипированным или если это оружие. Я могу это сделать, моя проблема заключается в том, как создавать эти элементы во время редактора, когда мой скрипт ожидает базы. Тип: Item.
Начиная с нуля у меня есть пункт (поля: строка ITEMNAME) и у меня есть ключ: Предмет (New Fields: строка AuthorityLevel)
У меня Pickup сценарий, который я применяю в качестве компонента к геймобжектам. В этом скрипте я могу дать ему свойство Item, и когда объект GameObject взаимодействует, я могу вызвать метод Pickup.GetItem(). Затем он берет свойство Item и добавляет его в мой объект Inventory.
Как мне получить свойство Item для хранения ссылки на объект Key, который наследуется от Item? Инспектор сценария PickUp будет показывать только ItemName Item Item, а не поле KeyLevel ключевого элемента.
Я немного потерян. Мне было легко реализовать это во время выполнения, поскольку скрипты, которые создают элементы, знают, какой конкретный элемент создавать и могут назначить его новому скрипту PickUp в GameObject. Но во время редактора сложно сказать инспектору, что я хочу, чтобы сценарий Pickup содержал ссылку на Key или любой другой объект, который наследует от Item.
Вы смогли найти ответ на свой вопрос еще? :) Я ищу то же самое. –
Эй, Рой. Я еще не нашел решение. Проект, над которым я работал, был только тем, что я пытался поиграть с некоторыми идеями, поэтому я поставил его на backburner для работы над простыми вещами. Однако я недавно видел то, что, как я думал, может решить эту проблему. Я положил это в глубину своего воображения, полагая, что я попробую его когда-нибудь по дороге. Возможно, вы найдете это как можно интереснее: http://www.reddit.com/r/Unity3D/comments/1xu0bg/release_full_inspector_inspector_serialization/ – Dszordan
Спасибо за ссылку, совершенно совпадение, поскольку я только что заметил ее, прежде чем вы прокомментировали здесь ! Это выглядит очень хорошо, и автор, кажется, тоже отвечает на вопросы. :) –