private void Start() { var brain = transform.Find("GridWorldBrain").GetComponent <Brain>(); if (brain.brainType == BrainType.Internal) { CoreBrainInternal coreBrainInternal = (CoreBrainInternal)brain.coreBrain; string name = "summary/" + coreBrainInternal.graphModel.name + ".csv"; csvWriter = new CsvFileWriter(name); List <string> columns = new List <string>() { "No", "Reward", "Step" }; // making Index Row csvWriter.WriteRow(columns); } }
public static void SwitchToInternalBrain() { //get training scene and find academy object Scene trainingScene = GetTrainingScene(); GameObject[] gameObjects = trainingScene.GetRootGameObjects(); GameObject academyObject = gameObjects.FirstOrDefault(g => g.name == AcademyName); if (academyObject != null) { //get child brain and change brain type Brain brain = academyObject.GetComponentInChildren <Brain>(); brain.brainType = BrainType.Internal; brain.UpdateCoreBrains(); //get selected text asset TextAsset selectedTextAsset = (TextAsset)Selection.activeObject; if (selectedTextAsset != null) { //set graph model of internal brain to selected text asset CoreBrainInternal internalBrain = (CoreBrainInternal)brain.coreBrain; if (internalBrain != null) { internalBrain.graphModel = selectedTextAsset; } else { Debug.LogError("Internal brain not found!"); } } else { Debug.LogWarning("TextAsset for internal brain's graph model isn't selected!"); } } else { Debug.LogError("Brain not found on current scene!"); } }