我无法移动角色(AI),当我尝试训练它时它也不会移动。我怎样才能解决这个问题?我按照 YouTube 上的代码猴子教程进行操作,它成功了,然后我尝试制作类似我自己的东西,但它不会移动角色。在启发式模式下。我在谷歌上搜索,没有任何帮助。谢谢!
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgents.Sensors;
using Unity.MLAgents.Actuators;
public class MoveToTarget : Agent
{
public Transform target;
public override void OnEpisodeBegin()
{
transform.position = new Vector3(0, 1, 0);
}
public override void CollectObservations(VectorSensor sensor)
{
sensor.AddObservation(transform.position);
sensor.AddObservation(target.position);
}
public override void OnActionReceived(ActionBuffers actions)
{
float x = actions.ContinuousActions[0];
float y = actions.ContinuousActions[1];
float velocidad = 1f;
transform.position += new Vector3(x, 0, y) * velocidad * Time.deltaTime;
}
public override void Heuristic(in ActionBuffers actionsOut)
{
ActionSegment<float> actionSegment = actionsOut.ContinuousActions;
actionSegment[0] = Input.GetAxisRaw("Horizontal");
actionSegment[1] = Input.GetAxisRaw("Vertical");
transform.Translate(actionSegment[0], 0, actionSegment[1]);
}
private void OnCollisionEnter(Collision collision)
{
if(collision.collider.tag == "target")
{
SetReward(+1f);
EndEpisode();
}
if(collision.collider.tag == "killzone")
{
SetReward(-1f);
EndEpisode();
}
}
}