Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
quick:agents [2020/02/18 15:11] – [Training] jesusmayoralquick:agents [2020/09/03 09:39] pedro
Line 1: Line 1:
 +<markdown>
 # ML-Agents Integration Guide # ML-Agents Integration Guide
  
Line 22: Line 23:
 The script `FiredBullet` consists in giving intelligence to the bullet, so it can tell if the it has impacted the player, besides autodestroy passed 2 seconds (or whatever the time indicated by the parameter). Additionally, the bullet has information about its creator, which will be used for knowing who to inform of the impact. Therefore, we have to add the following C# script to the Bullet prefab, after removing the script used in previous tutorials. The script `FiredBullet` consists in giving intelligence to the bullet, so it can tell if the it has impacted the player, besides autodestroy passed 2 seconds (or whatever the time indicated by the parameter). Additionally, the bullet has information about its creator, which will be used for knowing who to inform of the impact. Therefore, we have to add the following C# script to the Bullet prefab, after removing the script used in previous tutorials.
  
-<code csharp>+ 
 +```csharp
  using UnityEngine;  using UnityEngine;
  
Line 61: Line 63:
      }      }
  }  }
-</code>+```
  
 The code should be self-explanatory, but we have to note several things: The code should be self-explanatory, but we have to note several things:
Line 71: Line 73:
 The script `EnemyShoot` implements the shooting capacity of the enemy agent. We create a C# script that extends `Monobehaviour` based on the previous script `ShootOnce`.  This code should be self-explanatory too, and have to be added to the enemy, binding the shootpoint and the bullet prefab in the editor. The script `EnemyShoot` implements the shooting capacity of the enemy agent. We create a C# script that extends `Monobehaviour` based on the previous script `ShootOnce`.  This code should be self-explanatory too, and have to be added to the enemy, binding the shootpoint and the bullet prefab in the editor.
  
-<code csharp>+```csharp
  using UnityEngine;  using UnityEngine;
  
Line 148: Line 150:
      }      }
  }  }
-</code>+```
  
 We have to note the following points: We have to note the following points:
Line 159: Line 161:
 Finally, we create the C# script `EnemyAgent`, extending `Agent` class of `MLAgents`.  We add the following code, deleting the code included by default (`Start` and `Update` methods). Finally, we create the C# script `EnemyAgent`, extending `Agent` class of `MLAgents`.  We add the following code, deleting the code included by default (`Start` and `Update` methods).
  
-<code csharp>+```csharp
  using UnityEngine;  using UnityEngine;
  
Line 252: Line 254:
      }      }
  }  }
-</code>+```
  
 This class has three main methods that are overriden from the `Agent` class. Explaining why this methods have to be overridden and how Agent class works is out of the scope of this guide. The concrete implementation of these methods is described below. This class has three main methods that are overriden from the `Agent` class. Explaining why this methods have to be overridden and how Agent class works is out of the scope of this guide. The concrete implementation of these methods is described below.
Line 318: Line 320:
 - We have 2 continuous actions, one to rotate and one to shoot, that is the space size. - We have 2 continuous actions, one to rotate and one to shoot, that is the space size.
  
-You need to train our Enemy for having a proper behavior, but, for now, we give you a trained model that you can set in the `Behavior parameters`  {{:wiki:agents:cubeagentlearningbrain.zip}}. It would be a good challenge to try getting a better model than this.+You need to train our Enemy for having a proper behavior, but, for now, we give you a trained model that you can set in the `Behavior parameters`  {{:wiki:agents:cubeagentlearningmodel.zip}}. It would be a good challenge to try getting a better model than this.
  
  
Line 327: Line 329:
  
 The node used to execute `ML-Agents` in `Behavior Bricks` lets also to train a behavior inside a behavior tree. To do so, We have to follow the same procedure as indicated in [ML-Agents guides.](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-ML-Agents.md) The node used to execute `ML-Agents` in `Behavior Bricks` lets also to train a behavior inside a behavior tree. To do so, We have to follow the same procedure as indicated in [ML-Agents guides.](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-ML-Agents.md)
 +
 +</markdown>