private void Start() { carControl = GetComponent <AlternateCarController>(); carRGBody = GetComponent <Rigidbody>(); myPlateAgent = gameObject.GetComponent <PlateAgent>(); //ballRGBody = GameObject.Find("Golfball_G").GetComponent<Rigidbody>(); if (gameObject.CompareTag("Player")) { ballRGBody = gameObject.transform.parent.Find("Golfball_G").GetComponent <Rigidbody>(); plateTransform = transform.Find("CarModel").Find("Teller"); } else if (gameObject.CompareTag("Trainingsfahrzeug")) { ballRGBody = gameObject.transform.parent.Find("Trainingsball").GetComponent <Rigidbody>(); plateTransform = transform.Find("CarModel").Find("Trainingsteller"); } else { Debug.LogError("Reset Script: Ich habe keinen Ball gefunden"); } clearResetText(); }
private void Awake() { myPlateAgent = gameObject.GetComponent <PlateAgent>(); //Sollte nur von Player Auto übernommen werden if (!myPlateAgent.isTrainingCar) { sharedData.TrainingMode = activateTrainingMode; sharedData.debugMode = activateDebugMode; sharedData.currentMaxSpeed = maxSpeed; sharedData.maxSpeed = maxSpeed; sharedData.maxTorque = maxTorque; sharedData.brakeTorque = brakeTorque; sharedData.maxWheelAngle = maxWheelAngle; sharedData.nonMovingCar = nonMovingCar; //Prüfe ob die Ordnerstruktur für das Training existiert und erstelle es ggf. Directory.CreateDirectory(dirPathTrainingRoute + "debugLogs"); Directory.CreateDirectory(dirPathTrainingRoute + "default/debugLogs"); Directory.CreateDirectory(dirPathTrainingRoute + "einfach/debugLogs"); Directory.CreateDirectory(dirPathTrainingRoute + "mittel/debugLogs"); Directory.CreateDirectory(dirPathTrainingRoute + "schwer/debugLogs"); //Initialisiere das Trainingsfile Statisik Dictionary if (sharedData.TrainingMode) { Debug.Log("Starte Initialisierung des Statistik Dictionarys*****"); sharedData.anzahlEinfacherStrecken = LoadTrainingFilesToDict(dirPathTrainingRoute + "einfach/", sharedData.trainingsStatPerFile); sharedData.anzahlMittlererStrecken = LoadTrainingFilesToDict(dirPathTrainingRoute + "mittel/", sharedData.trainingsStatPerFile); sharedData.anzahlSchwererStrecken = LoadTrainingFilesToDict(dirPathTrainingRoute + "schwer/", sharedData.trainingsStatPerFile); Debug.Log("Alle Trainingsfiles in die Statistik geladen"); foreach (KeyValuePair <string, Vector2> item in sharedData.trainingsStatPerFile) { Debug.LogFormat("Habe Datei in Stat: {0}", item.Key); } float gesamtZahlStrecken = sharedData.anzahlEinfacherStrecken + sharedData.anzahlMittlererStrecken + sharedData.anzahlSchwererStrecken; if (gesamtZahlStrecken == 0) { throw new Exception("Trainingmodus aktiv, aber keine Trainingsstrecken gefunden"); } sharedData.anteilLeichteStrecken = sharedData.anzahlEinfacherStrecken / gesamtZahlStrecken; sharedData.anteilMittlererStrecken = sharedData.anzahlMittlererStrecken / gesamtZahlStrecken; sharedData.anteilSchwererStrecken = sharedData.anzahlSchwererStrecken / gesamtZahlStrecken; Debug.LogFormat("Streckenanteile: einfach: {0}, mittel:{1}, schwer {2}", sharedData.anteilLeichteStrecken, sharedData.anteilMittlererStrecken, sharedData.anteilSchwererStrecken); //Erhöhe Wahrscheinlichkeit, dass leichte Strecken kommen -> besseres Trainingsergebnis, weniger schlechte Strecken int difficultyFactorMiddle = 2; //Anteil der vom mittleren Streckenanteil an die leichten geht -> darf nicht gleich 0 sein int difficultyFactorHard = 2; //Anteil der vom schweren Streckenanteil an die leichten geht -> darf nicht gleich 0 sein sharedData.anteilLeichteStrecken += (sharedData.anteilMittlererStrecken / difficultyFactorMiddle + sharedData.anteilSchwererStrecken / difficultyFactorHard); sharedData.anteilMittlererStrecken -= sharedData.anteilMittlererStrecken / difficultyFactorMiddle; sharedData.anteilSchwererStrecken -= sharedData.anteilSchwererStrecken / difficultyFactorHard; Debug.LogFormat("Streckenanteile Update: einfach: {0}, mittel:{1}, schwer {2}", sharedData.anteilLeichteStrecken, sharedData.anteilMittlererStrecken, sharedData.anteilSchwererStrecken); } if (sharedData.nonMovingCar) { sharedData.maxSpeed = 0f; Debug.Log("***Habe Fahrzeug bewegungsunfähig gemacht"); } } }