Class LoadedAv
A loaded avatar and its associated data.
public abstract class LoadedAv
- Inheritance
-
objectLoadedAv
- Derived
Constructors
LoadedAv(GameObject, AvMetadata, Texture2D?, Texture2D?, Type)
protected LoadedAv(GameObject gameObject, AvMetadata metadata, Texture2D? fullRender, Texture2D? bustRender, Type importerType)
Parameters
gameObjectGameObjectmetadataAvMetadatafullRenderTexture2D?bustRenderTexture2D?importerTypeType
Fields
BustRender
Optional bust render of the avatar.
public readonly Texture2D? BustRender
Field Value
- Texture2D?
DestroyOnDispose
Deprecated. Use LifetimeObjects and the RegisterLifetimeObject(Object) APIs instead.
[Obsolete("Use LifetimeObjects/RegisterLifetimeObject/DeregisterLifetimeObject instead.")]
public readonly List<UnityEngine.Object> DestroyOnDispose
Field Value
- List<UnityEngine.Object>
FullRender
Optional full render of the avatar.
public readonly Texture2D? FullRender
Field Value
- Texture2D?
GameObject
The avatar's GameObject.
public readonly GameObject GameObject
Field Value
- GameObject
ImporterType
The type of the importer which created this LoadedAv.
public readonly Type ImporterType
Field Value
- Type
Metadata
Metadata of the avatar.
public readonly AvMetadata Metadata
Field Value
Properties
LifetimeObjects
Unity objects whose lifetime is owned by this avatar.
public IReadOnlyCollection<UnityEngine.Object> LifetimeObjects { get; }
Property Value
- IReadOnlyCollection<UnityEngine.Object>
Remarks
All registered objects are destroyed when the avatar is disposed. FullRender and BustRender are registered automatically. Call DeregisterLifetimeObject(Object) to take ownership of an object and prevent it from being destroyed.
Methods
DeregisterLifetimeObject(Object)
Removes a Unity object from the avatar's lifetime ownership.
public void DeregisterLifetimeObject(UnityEngine.Object unityObject)
Parameters
unityObjectObject
Remarks
After deregistration, the caller becomes responsible for destroying the object. This is can be used to retain FullRender or BustRender.
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
GetAvatarMaterials(bool)
Gets all materials used by the avatar.
public IReadOnlyList<Material> GetAvatarMaterials(bool refreshCache = false)
Parameters
refreshCachebool
Returns
- IReadOnlyList<Material>
Remarks
Results are cached. Call with refreshCache set to
true if renderers or materials change at runtime.
GetAvatarMeshes(bool)
Gets all meshes used by the avatar.
public IReadOnlyList<Mesh> GetAvatarMeshes(bool refreshCache = false)
Parameters
refreshCachebool
Returns
- IReadOnlyList<Mesh>
Remarks
Results are cached. Call with refreshCache set to
true if renderers or meshes change at runtime.
GetAvatarRenderers(bool)
Gets all renderers used by the avatar.
[SuppressMessage("Style", "IDE0046:Convert to conditional expression", Justification = "Avoids double conditional, improves readability.")]
public IReadOnlyList<Renderer> GetAvatarRenderers(bool refreshCache = false)
Parameters
refreshCachebool
Returns
- IReadOnlyList<Renderer>
Remarks
Results are cached. Call with refreshCache set to
true if renderers change at runtime.
GetCapability<T>()
Casts the current avatar object to T.
public T GetCapability<T>() where T : ICapability
Returns
- T
The casted result.
Type Parameters
TThe capability type to cast to.
ImporterSpecificDispose()
protected virtual void ImporterSpecificDispose()
RegisterLifetimeObject(Object)
Registers a Unity object to be destroyed when the avatar is disposed.
public void RegisterLifetimeObject(UnityEngine.Object unityObject)
Parameters
unityObjectObject
Remarks
Intended for post-processors and extensions that create temporary runtime objects.
ThrowIfDisposed()
protected void ThrowIfDisposed()
TryGetAvatarMaterials()
Tries to get all materials of the avatar.
public virtual IReadOnlyList<Material>? TryGetAvatarMaterials()
Returns
- IReadOnlyList<Material>
TryGetAvatarMeshes()
Tries to get all meshes of the avatar.
public virtual IReadOnlyList<Mesh>? TryGetAvatarMeshes()
Returns
- IReadOnlyList<Mesh>
TryGetAvatarRenderers()
Tries to get all renderers of the avatar.
public virtual IReadOnlyList<Renderer>? TryGetAvatarRenderers()
Returns
- IReadOnlyList<Renderer>
TryGetCapability<T>(out T?)
Tries to cast the current avatar object to T.
public bool TryGetCapability<T>(out T? capability) where T : ICapability
Parameters
capabilityTThe casted result, or null if casting failed.
Returns
Type Parameters
TThe capability type to cast to.
Remarks
Ultimately, this is just syntactic sugar for:
if (avatar is T capability)
...
else
...