Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ProcessorInstance.AvailableData

A temporary collection of data available for enumeration.
Read time 1 minuteLast updated 6 days ago

Definition

public ref struct ProcessorInstance.AvailableData

Remarks

You can enumerate the ProcessorInstance.AvailableData.Elements within using a foreach loop over this collection.
Additional Resources: ProcessorInstance.Pipe.SendData

Examples

using System;using UnityEngine.Audio;using static UnityEngine.Audio.ProcessorInstance;using static UnityEngine.Audio.GeneratorInstance;using Unity.IntegerTime;class AvailableDataExamples{ struct ThingToCommunicate { public float MyData; } struct OtherThing { public int MyOtherData; } internal struct ProcessorInvestigatingData : GeneratorInstance.IRealtime { public void Update(UpdatedDataContext context, Pipe pipe) { float myData = 0f; foreach (var element in pipe.GetAvailableData(context)) { if (element.TryGetData(out ThingToCommunicate thing)) { myData = thing.MyData; } else if (element.TryGetData(out OtherThing otherThing)) { myData = MathF.PI * otherThing.MyOtherData; } } } internal struct Control : GeneratorInstance.IControl<ProcessorInvestigatingData> { public void Update(ControlContext context, Pipe pipe) { float myData = 0f; foreach (var element in pipe.GetAvailableData(context)) { if (element.TryGetData(out ThingToCommunicate thing)) { myData = thing.MyData; } else if (element.TryGetData(out OtherThing otherThing)) { myData = MathF.PI * otherThing.MyOtherData; } } } public void Dispose(ControlContext context, ref ProcessorInvestigatingData processor) { } public ProcessorInstance.Response OnMessage(ControlContext context, Pipe pipe, Message message) => ProcessorInstance.Response.Unhandled; public void Configure(ControlContext context, ref ProcessorInvestigatingData processor, in AudioFormat format, out Setup setup, ref Properties properties) => setup = new(format); } public bool isFinite => false; public bool isRealtime => false; public DiscreteTime? length => null; public Result Process(in RealtimeContext ctx, Pipe pipe, ChannelBuffer buf, Arguments args) => 0; }}

Structs

Struct

Description

ProcessorInstance.AvailableData.ElementA piece of temporary immutable type-erased data that was sent from ProcessorInstance.Pipe.SendData, received on likely another thread.