Unity 机器学习代理工具包 (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为训练智能代理的环境。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

59 行
1.7 KiB

using UnityEngine;
namespace MLAgents
{
/// <summary>
/// Behavioral Cloning Helper script. Attach to teacher agent to enable
/// resetting the experience buffer, as well as toggling session recording.
/// </summary>
public class BcTeacherHelper : MonoBehaviour
{
bool m_RecordExperiences;
bool m_ResetBuffer;
Agent m_MyAgent;
float m_BufferResetTime;
public KeyCode recordKey = KeyCode.R;
public KeyCode resetKey = KeyCode.C;
// Use this for initialization
void Start()
{
m_RecordExperiences = true;
m_ResetBuffer = false;
m_MyAgent = GetComponent<Agent>();
m_BufferResetTime = Time.time;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(recordKey))
{
m_RecordExperiences = !m_RecordExperiences;
}
if (Input.GetKeyDown(resetKey))
{
m_ResetBuffer = true;
m_BufferResetTime = Time.time;
}
else
{
m_ResetBuffer = false;
}
Monitor.Log("Recording experiences " + recordKey, m_RecordExperiences.ToString());
var timeSinceBufferReset = Time.time - m_BufferResetTime;
Monitor.Log("Seconds since buffer reset " + resetKey,
Mathf.FloorToInt(timeSinceBufferReset).ToString());
}
void FixedUpdate()
{
// Convert both bools into single comma separated string. Python makes
// assumption that this structure is preserved.
m_MyAgent.SetTextObs(m_RecordExperiences + "," + m_ResetBuffer);
}
}
}