Я реализовал простой календарь (систему сообщений) для моей игры, который состоит из:
1) List<Event> calendar;
2) public class Event
{
/// <summary>
/// When to process the event
/// </summary>
public Int64 when;
/// <summary>
/// Which object should process the event
/// </summary>
public GameObject who;
/// <summary>
/// Type of event
/// </summary>
public EventType what;
public int posX;
public int posY;
public int EventID;
}
3) calendar.Add(new Event(...))
Проблема с этим кодом заключается в том, что даже количество сообщений не превышено в секунду. Он выделяет все еще новую память, и GC однажды должен будет позаботиться об этом. Сборка мусора может привести к небольшому отставанию в моей игре, и поэтому я хотел бы оптимизировать мой код.
Мои соображения:
Чтобы изменить класс событий в структуре, но структура не совсем мала, и для ее копирования требуется время, когда мне это нужно.
Как-нибудь повторно использовать объект Event (добавить очередь с используемыми событиями, а когда потребуется новое событие, я просто возьму из этой очереди).
У кого-нибудь есть другие идеи, как решить проблему?
Спасибо за предложения!