您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
49 行
1.2 KiB
49 行
1.2 KiB
using Unity.MLAgents.Actuators;
|
|
namespace Unity.MLAgents.Tests.Actuators
|
|
{
|
|
internal class TestActuator : IActuator, IHeuristicProvider
|
|
{
|
|
public ActionBuffers LastActionBuffer;
|
|
public int[][] Masks;
|
|
public bool m_HeuristicCalled;
|
|
public int m_DiscreteBufferSize;
|
|
|
|
public TestActuator(ActionSpec actuatorSpace, string name)
|
|
{
|
|
ActionSpec = actuatorSpace;
|
|
|
|
Name = name;
|
|
}
|
|
|
|
public void OnActionReceived(ActionBuffers actionBuffers)
|
|
{
|
|
LastActionBuffer = actionBuffers;
|
|
}
|
|
|
|
public void WriteDiscreteActionMask(IDiscreteActionMask actionMask)
|
|
{
|
|
|
|
for (var i = 0; i < Masks.Length; i++)
|
|
{
|
|
foreach (var actionIndex in Masks[i])
|
|
{
|
|
actionMask.SetActionEnabled(i, actionIndex, false);
|
|
}
|
|
}
|
|
}
|
|
|
|
public ActionSpec ActionSpec { get; }
|
|
|
|
public string Name { get; }
|
|
|
|
public void ResetData()
|
|
{
|
|
}
|
|
|
|
public void Heuristic(in ActionBuffers actionBuffersOut)
|
|
{
|
|
m_HeuristicCalled = true;
|
|
m_DiscreteBufferSize = actionBuffersOut.DiscreteActions.Length;
|
|
}
|
|
}
|
|
}
|