GetComponent callshttps://github.com/meta-quest/Unity-UtilityPackages.git?path=com.meta.utilities. General Unity utilities have no SDK dependencies; XR utilities require the Meta XR SDK.| Package | What it demonstrates | Key concepts |
|---|---|---|
com.meta.utilities | Singleton patterns, automatic component wiring, type-safe enum dictionaries, and 40+ extension methods | Singleton<T>, Multiton<T>, [AutoSet] attributes, EnumDictionary |
com.meta.utilities.narrative | Task-based narrative system with sequencing, conditions, and event broadcasting | TaskManager (ScriptableObject singleton), TaskSequence, TaskHandler |
com.meta.utilities.viewport-renderer | Stencil-based portal rendering without intermediate render textures, optimized for XR stereo | ViewportRenderer extending URP’s DrawObjectsPass |
com.meta.utilities.watch-window | Real-time C# expression evaluation in the Unity Editor using Roslyn | Expression graphing, variable references, private member access via Window > Analysis > Watch Window |
| Package | What it demonstrates | Key concepts |
|---|---|---|
com.meta.utilities.input | Desktop simulation of XR input and body tracking data bridging | XRDeviceFpsSimulator, XRInputManager |
com.meta.utilities.avatars | Networking-agnostic avatar entity with body tracking, lip sync, and face/eye pose | AvatarEntity extending OvrAvatarEntity, IAvatarNetworking interface |
com.meta.utilities.environment | Complete ocean and weather simulation system from the North Star showcase | iFFT-based ocean with Burst jobs, environment profiles, rain and wind systems |
com.meta.utilities.ropes | Verlet-based rope physics with anchoring, wrapping, and hand interaction | [BurstCompile] jobs for node simulation and constraints, RopeSystem |
com.meta.multiplayer.netcode-photon | Three-layer multiplayer architecture with transport, session, and application state | NetworkLayer state machine with host migration, NetworkSingleton<T> |
com.meta.tutorial.framework | Editor-based tutorial system parsing markdown into interactive in-editor pages | Meta > Tutorial Hub > Show Hub menu, ScriptableObject config |
Singleton<T> provides automatic instance management for MonoBehaviour components with FindObjectOfType fallback and DontDestroyOnLoad persistence. NetworkSingleton<T> extends this for NetworkBehaviour components, adding network spawn and despawn handling. For classes that cannot inherit from MonoBehaviour, the manual static Instance pattern provides explicit lifecycle control.GetComponent boilerplate by automatically wiring component references during editor serialization. [AutoSet] searches the same GameObject, [AutoSetFromParent] traverses up the hierarchy, and [AutoSetFromChildren] searches descendants. The system runs at edit time, meaning zero runtime cost:[AutoSet] private Rigidbody _rigidbody; [AutoSetFromParent] private PlayerController _controller; [AutoSetFromChildren] private Renderer[] _renderers;
IJobParallelFor jobs to parallelize physics calculations across CPU cores. The rope system splits Verlet integration into three job types: node simulation (velocity and gravity), distance constraints (segment length preservation), and boundary constraints (anchoring and collision):[BurstCompile]
struct SimulateNodesJob : IJobParallelFor {
public void Execute(int index) {
// Update position using previous velocity + gravity
}
}
TaskManager with NetworkSingleton<T> and adding RPCs to synchronize task state across clients.