Мне нужно отобразить некоторые статистические данные, цифры и графики о различных игровых объектах на экране.
(примеры: положение камеры, поле обзора, количество кадров в секунду, скорость заполнения, количество отбракованных объектов и т. Д.)
В настоящее время любой объект, который хочет быть представлен или отображен, реализует интерфейс по следующим направлениям:
public interface IGraphable
{
float GraphableValue { get; set; }
}
Затем этот объект может быть отправлен в компонент графика для отображения. Это имеет ряд очевидных недостатков, таких как невозможность отображения двух разных частей данных, принадлежащих одному и тому же классу.
Мне нужен способ передать указатель на то, где находятся данные, или указатель на функцию, которая знает, как вернуть данные, а не передавать объект компоненту отображения.
Я считаю, что это то, для чего нужны делегаты, но я не понимаю, как использовать их в этом контексте (на самом деле я их совсем не понимаю). Кроме того, есть ли другой (умнее / лучше) способ сделать это?
Спасибо!