Example #1
0
 /// <summary>
 /// Instantiates various parts of the agent each training episode
 /// Resets or Gets the agents memory class
 /// Gets the max local distance of the current map
 /// </summary>
 protected void Constructor()
 {
     InstanceController = GetComponentInParent <TrainingInstanceController>();
     AgentRigidbody     = GetComponent <Rigidbody>();
     _agentMemory       = _agentMemoryFactory.GetAgentMemoryClass(2);
     MaxLocalDistance   = GetMaxLocalDistance(5);
 }
Example #2
0
 protected static void SetAdvancedDebug(TrainingInstanceController trainingInstanceController)
 {
     trainingInstanceController.exitCount        = 3;
     trainingInstanceController.mapScale         = 3;
     trainingInstanceController.mapDifficulty    = 10;
     trainingInstanceController.guardAgentCount  = 2;
     trainingInstanceController.hasMiddleTiles   = true;
     trainingInstanceController.waitForTestSetup = false;
 }
Example #3
0
 protected static void SetDebugParameters(TrainingInstanceController trainingInstanceController, int mapScale,
                                          int mapDifficulty, int exitCount, int guardAgentCount, bool hasMiddleTiles = true)
 {
     trainingInstanceController.mapDifficulty    = mapDifficulty;
     trainingInstanceController.mapScale         = mapScale;
     trainingInstanceController.exitCount        = exitCount;
     trainingInstanceController.guardAgentCount  = guardAgentCount;
     trainingInstanceController.hasMiddleTiles   = hasMiddleTiles;
     trainingInstanceController.waitForTestSetup = false;
 }
Example #4
0
 public void Start()
 {
     _instanceController     = instanceControllerPref.GetComponent <TrainingInstanceController>();
     _difficultySliderScript = mapDifficultySlider.GetComponent <Slider>();
 }
        protected List <(float, float)> GetPositionsAroundCenter(TrainingInstanceController trainingInstanceController,
                                                                 int mid, int mapScale)
        {
            var max = StaticFunctions.GetMaxLocalDistance(mapScale);

            var position1X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid - 1)).Position, trainingInstanceController).x);

            var position1Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid - 1)).Position, trainingInstanceController).z);

            var position2X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid)).Position, trainingInstanceController).x);

            var position2Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid)).Position, trainingInstanceController).z);

            var position3X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid + 1)).Position, trainingInstanceController).x);

            var position3Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid - 1, mid + 1)).Position, trainingInstanceController).z);

            var position4X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid, mid + 1)).Position, trainingInstanceController).x);

            var position4Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid, mid + 1)).Position, trainingInstanceController).z);

            var position5X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid, mid - 1)).Position, trainingInstanceController).x);

            var position5Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid, mid - 1)).Position, trainingInstanceController).z);

            var position6X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid + 1)).Position, trainingInstanceController).x);

            var position6Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid + 1)).Position, trainingInstanceController).z);

            var position7X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid)).Position, trainingInstanceController).x);

            var position7Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid)).Position, trainingInstanceController).z);

            var position8X = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid - 1)).Position, trainingInstanceController).x);

            var position8Y = StaticFunctions.NormalisedFloat(-max, max, VectorConversions.GetLocalPosition(
                                                                 trainingInstanceController
                                                                 .TileDict[TileType.FreeTiles]
                                                                 .First(tile => tile.Coords == (mid + 1, mid - 1)).Position, trainingInstanceController).z);

            return(new List <(float, float)>
            {
                (position1X, position1Y),
                (position2X, position2Y),
                (position3X, position3Y),
                (position4X, position4Y),
                (position5X, position5Y),
                (position6X, position6Y),
                (position7X, position7Y),
                (position8X, position8Y)
            });
Example #6
0
 public void Start()
 {
     _instanceController = instanceControllerPref.GetComponent <TrainingInstanceController>();
 }
 public static Vector3 GetLocalPosition(Vector3 position, TrainingInstanceController trainingInstance)
 {
     return(position - trainingInstance.transform.localPosition);
 }