`FTickableStatics`是一个单例,只用于保存和操作`TickableObjects`
## 成员变量
```cpp
//需要Tick的对象数组
TArray<FTickableObjectBase::FTickableObjectEntry> TickableObjects;
//需要下次Tick时加入Tick数组的新对象
TSet<FTickableGameObject*> NewTickableObjects;
```
## 单例实现
```cpp
static FTickableStatics& Get()
{
static FTickableStatics Singleton;
return Singleton;
}
```
## 成员函数
两个操作均是添加或从`NewTickableObjects`删除,直接在`TickableObjects`操作的方法是由`FTickableObjectBase`提供的
```cpp
void QueueTickableObjectForAdd(FTickableGameObject* InTickable)
{
FScopeLock NewTickableObjectsLock(&NewTickableObjectsCritical);
NewTickableObjects.Add(InTickable);
}
void RemoveTickableObjectFromNewObjectsQueue(FTickableGameObject* InTickable)
{
FScopeLock NewTickableObjectsLock(&NewTickableObjectsCritical);
NewTickableObjects.Remove(InTickable);
}
```