public void Initialize(PooledObjectInitializationData initializationData)
    {
        NPCUIDisplayInitializationData initData = initializationData as NPCUIDisplayInitializationData;

        if (initData == null)
        {
            return;
        }
        _unit = initData.Unit;

        _unit.Damageable.OnCurrentHealthChanged += OnCurrentHealthChanged;
        _unit.Damageable.OnMaxHealthChanged     += OnMaxHealthChanged;
    }
    private void OnDateSpawned()
    {
        if (!PooledObjectManager.Instance.UsePooledObject(NPCUIDisplayPrefabId, out PooledObject obj))
        {
            CustomLogger.Error(nameof(NPCUIDisplayManager), $"Could not get NPC info display object with id {NPCUIDisplayPrefabId}!");
            return;
        }
        NPCUIDisplay npcUIDisplay = obj as NPCUIDisplay;

        if (npcUIDisplay == null)
        {
            CustomLogger.Error(nameof(NPCUIDisplayManager), $"Did not receive a {nameof(NPCUIDisplay)} object!");
            return;
        }
        NPCUIDisplayInitializationData initData = new NPCUIDisplayInitializationData()
        {
            Unit = DateUnit.Instance
        };

        npcUIDisplay.Initialize(initData);
        npcUIDisplay.Spawn();
        _registeredUnits.Add(DateUnit.Instance, npcUIDisplay);
    }