/// <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); }
protected static void SetAdvancedDebug(TrainingInstanceController trainingInstanceController) { trainingInstanceController.exitCount = 3; trainingInstanceController.mapScale = 3; trainingInstanceController.mapDifficulty = 10; trainingInstanceController.guardAgentCount = 2; trainingInstanceController.hasMiddleTiles = true; trainingInstanceController.waitForTestSetup = false; }
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; }
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) });
public void Start() { _instanceController = instanceControllerPref.GetComponent <TrainingInstanceController>(); }
public static Vector3 GetLocalPosition(Vector3 position, TrainingInstanceController trainingInstance) { return(position - trainingInstance.transform.localPosition); }