private IEnumerator _CreateInnerObject <AssetType, CallbackParamType>(
            PoolItem <AssetData> poolItem,
            CreateAssetPoolItemParam param,
            Action <CallbackParamType> callback) where AssetType : IDynamicObject, new() where CallbackParamType : ScriptableObject
        {
            yield return(poolItem.CreateInnerObject <AssetType, CallbackParamType>(param));

            _assetPool.UpdatePoolItemIdentifier(poolItem);

            callback((CallbackParamType)poolItem.InnerObject);
        }