
# Objective - A step towards #19024. - Allow `ReflectAsset` to work with any `AssetId` not just `Handle`. - `ReflectAsset::ids()` returns an iterator of `AssetId`s, but then there's no way to use these ids, since all the other APIs in `ReflectAsset` require a handle (and we don't have a reflect way to get the handle). ## Solution - Replace the `UntypedHandle` argument in `ReflectAsset` methods with `impl Into<UntypedAssetId>`. - This matches the regular asset API. - This allows `ReflectAsset::ids()` to be more useful. ## Testing - None.
801 B
801 B
title:
ReflectAsset
now uses UntypedAssetId
instead of UntypedHandle
.
pull_requests: [19606]
Previously, ReflectAsset
methods all required having UntypedHandle
. The only way to get an
UntypedHandle
through this API was with ReflectAsset::add
. ReflectAsset::ids
was not very
useful in this regard.
Now, all methods have been changed to accept impl Into<UntypedAssetId>
, which matches our regular
Assets<T>
API. This means you may need to change how you are calling these methods.
For example, if your code previously looked like:
let my_handle: UntypedHandle;
let my_asset = reflect_asset.get_mut(world, my_handle).unwrap();
You can migrate it to:
let my_handle: UntypedHandle;
let my_asset = reflect_asset.get_mut(world, &my_handle).unwrap();