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); }