Repository URL to install this package:
|
Version:
1.3.1 ▾
|
ai.fluctio.fluctio-sim
/
Core
/
Components
/
MachineLearning
/
Actuating
/
ActionBuffersExtensions.cs
|
|---|
using System;
using Unity.MLAgents.Actuators;
namespace Fluctio.FluctioSim.Core.Components.MachineLearning.Actuating
{
public static class ActionBuffersExtensions
{
public static ActionBuffers FromOneContinuous(float value)
{
return new ActionBuffers(new[] { value }, new int[] { });
}
public static void CheckSingleContinuous(this ActionBuffers actionBuffers)
{
var discreteAmount = actionBuffers.DiscreteActions.Length;
var continuousAmount = actionBuffers.ContinuousActions.Length;
if (discreteAmount != 0 || continuousAmount != 1)
{
throw new InvalidOperationException($"Expected exactly one continuous action, got {discreteAmount} discrete and {continuousAmount} continuous");
}
}
public static void SetOneContinuous(this ActionBuffers actionBuffers, float value)
{
actionBuffers.CheckSingleContinuous();
var continuousActions = actionBuffers.ContinuousActions;
continuousActions[0] = value;
}
public static float GetOneContinuous(this ActionBuffers actionBuffers)
{
actionBuffers.CheckSingleContinuous();
var continuousActions = actionBuffers.ContinuousActions;
return continuousActions[0];
}
}
}