Creating a configuration

To create a new configuration, create a class that inherits from the AnimationConfig abstract class

public abstract class AnimationConfig
{
    public abstract void ApplyConfiguration(AvatarReady avatarReady);

    public abstract void ResetConfiguration(AvatarReady avatarReady);
}

Some attributes must be specified in the configuration:

  • An AvatarReadyName to define the name of the config in the avatar ready inspector

  • An AvatarReadySupportedSystem to define the system this config applies to

A configuration may also have some optional attributes

  • One or many AvatarReadySupportedTracker if the system requires the use of trackers

  • One or many AvatarReadyConstOption / AvatarReadyObjectOptionAttribute / AvatarReadyReflectionOptionAttribute if the system requires specific options.

Example of attributes for the Animation Rigging Default configuration
[AvatarReadyName("Animation Rigging Default config", "Headset + 2 Hand controllers")]
[AvatarReadySupportedSystem(typeof(AnimationRiggingSystem))]
[AvatarReadySupportedTracker(0, "Headset", HumanBodyBones.Head, typeof(HeadTracker))]
[AvatarReadySupportedTracker(1, "Left Hand Tracker", HumanBodyBones.LeftHand, typeof(HandTracker))]
[AvatarReadySupportedTracker(1, "Right Hand Tracker", HumanBodyBones.RightHand, typeof(HandTracker))]
public class ARiggingDefaultConfig : AnimationConfig
{
    ...
}