Разные виды кнопок в одном списке
Добавлено: 13 апр 2019, 12:42
Здравствуйте! Подскажите, пожалуйста, как реализовать нужный функционал - не могу даже представить, с какой стороны подойти к решению вопроса.
Имеется список, используемый для генерации кнопок. У каждой кнопки в списке есть настройки.
Каждый элемент списка - экземпляр класса Button Content, который несёт в себе два параметра: текст кнопки, и Scriptable object, который загружается при нажатии на кнопку.
Всё отлично работает, кнопки создаются, новые ноды загружаются в соответствии с указанными в инспекторе.
Требуется, чтобы кнопки в списке были разными, в идеале - наследующими класс Button Content. Делать они будут то же самое, но gotoNode будет определяться разными способами, а в инспекторе будет возможность выбора кнопки с последующей настройкой в инспекторе параметров метода, выбирающего gotoNode? к примеру - рандомно из списка, или выбирая один из двух вариантов в зависимости от значения некой переменной. Выглядеть это в инспекторе должно примерно так:
Имеется список, используемый для генерации кнопок. У каждой кнопки в списке есть настройки.
Каждый элемент списка - экземпляр класса Button Content, который несёт в себе два параметра: текст кнопки, и Scriptable object, который загружается при нажатии на кнопку.
Синтаксис:
Используется csharp
[Serializable]
public class ButtonContent
{
public string buttonText;
public Node gotoNode;
}
public class ButtonContent
{
public string buttonText;
public Node gotoNode;
}
Всё отлично работает, кнопки создаются, новые ноды загружаются в соответствии с указанными в инспекторе.
Требуется, чтобы кнопки в списке были разными, в идеале - наследующими класс Button Content. Делать они будут то же самое, но gotoNode будет определяться разными способами, а в инспекторе будет возможность выбора кнопки с последующей настройкой в инспекторе параметров метода, выбирающего gotoNode? к примеру - рандомно из списка, или выбирая один из двух вариантов в зависимости от значения некой переменной. Выглядеть это в инспекторе должно примерно так: