public override void OnActionReceived(ActionBuffers actionBuffers) { //switch (vectorAction[0]) //{ // case 1: // Rotate(1); // break; // case 2: // Rotate(-1); // break; // case 3: // Rotate(0); // break; //} //if (vectorAction[1] == 1) //{ // FireInput(); //} //Set rewards if (tankManager.GetFriendlySuccessCount() > oldFriendlySuccessCount) { SetReward(0.3f); oldFriendlySuccessCount = tankManager.GetFriendlySuccessCount(); } else if (tankManager.GetFriendlyKilledCount() > oldFriendlyKilled) { Debug.Log("killed f"); SetReward(-0.5f); oldFriendlyKilled = tankManager.GetFriendlyKilledCount(); } else if (tankManager.GetEnemySuccesscount() > oldEnemySuccessCount) { SetReward(-0.7f); oldEnemySuccessCount = tankManager.GetEnemySuccesscount(); } if (tankManager.GetFriendlySuccessCount() >= tankManager.FriendlySaveTowin) { Debug.Log("Game Won"); SetReward(1.0f); EndEpisode(); } else if (tankManager.GetFriendlyKilledCount() >= tankManager.FriendlyKilledToLose) { Debug.Log("Game Lost"); SetReward(-1.0f); EndEpisode(); } else if (tankManager.GetEnemySuccesscount() >= tankManager.EnemyEnterToLose) { Debug.Log("Game lost"); SetReward(-1.0f); EndEpisode(); } MoveAgent(actionBuffers.DiscreteActions); }