0

我无法移动角色(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();
        }
    }

}
4

0 回答 0