/// <summary> /// Funktion, behandelt, je nach Eingabe des spezifischen Kontrollpunktes, welche Ereignisse ausgeführt werden /// sollen. /// </summary> /// <param name="name">Name des Kontrollpunktes für den die spezifischen Ereignisse ausgeführt werden sollen</param> private void HandleSpecificCtrlPoint(string name) { switch (name) { case "Score": EventManager.ActivateScore(); break; case "Items": EventManager.ActivateTimer(); break; case "Finish": if (GlobalDataHandler.GetInventoryItem() != null) { _controlPoints[_actualCtrlPointIdx].GetComponent <BoxCollider>().enabled = true; _actualCtrlPointIdx--; EventManager.HitTutorialObstacle(_controlPoints[_actualCtrlPointIdx].transform.position.z); _controlPoints[_actualCtrlPointIdx].GetComponent <BoxCollider>().enabled = true; } else { EventManager.ResetInventory(); } break; } }
public EnemySetup(float speed, Transform target, float health, int tier, GlobalDataHandler globalData) { Speed = speed; Target = target; Health = health; Tier = tier; GlobalData = globalData; }
/// <summary> /// Funktion, sucht in der Szene nach der Onjektliste und speichert eine Referenz auf der Instanzvariablen /// des Objektes. /// </summary> private void SearchForObjctCtrl() { if (GlobalDataHandler.GetActualSceneName() == "Tutorial" || GlobalDataHandler.GetActualSceneName() == "HomeScene") { return; } _objList = GameObject.Find("ObjectList").GetComponent <ObjectList>(); }
/// <summary> /// Funktion, lässt den Punktestand und den Timer anzeigen, sofern die Szene nicht das Tutorial ist. /// </summary> private void DisplayPlayerStatsAndInventory() { if (GlobalDataHandler.GetActualSceneName() != "Tutorial") { DisplayScore(); DisplayTimer(); } }
private const int AmountOfGroupItems = 6; // Anzahl der Objekte in einer Gruppe. /// <summary> /// Funktion, wird von Unity ausgeführt, wenn das Skript aktiviert wird. Diese Funktion wird vor der /// Update Methode ausgeführt. /// </summary> private void Start() { _billowOffset = _groupMembers[_groupMembers.Length - 1]; _rnd = new System.Random(); _objList = GetComponent <ObjectList>(); _lastSpawnPosZ = GlobalDataHandler.GetPlayerPosition() + _objList.MaxSpawnDistance - InitSpawnOffset; SpawnPortal(); }
public static void LevelIsLoaded() { PlayLevelSound(GlobalDataHandler.GetActualSceneName()); if (LevelIsLoadedEventMethods != null) { LevelIsLoadedEventMethods(); } }
private void StopInGameSound() { if (string.IsNullOrEmpty(GlobalDataHandler.GetActualSceneName())) { throw new ArgumentException("name", "Value cannot be null or empty."); } StartCoroutine(FadeOut(_soundSources[GlobalDataHandler.GetActualSceneName()], .5f)); }
/// <summary> /// Berechnet die Grenzen in denen die Objekte platziert werden dürfen. /// </summary> private void CalculateSegmentBounds() { var playerPos = GlobalDataHandler.GetPlayerPosition(); _segmentBoundsXMin = BothSides ? -GlobalDataHandler.TrackWidth - DefineSegmentWidth : GlobalDataHandler.TrackWidth; _segmentBoundsXMax = GlobalDataHandler.TrackWidth + DefineSegmentWidth; _segmentBoundsZMin = playerPos - OffsetToPlayer; _segmentBoundsZMax = playerPos + OffsetToPlayer; }
/// <summary> /// Funktion, setzt den Spieler auf den z-Wert 0. Diese Funktion wird aufgerufen, wenn der Spieler /// das Level wechselt. /// </summary> private void ResetPlyrPositionAndPastDistanceForNextLevel() { if (_body == null || GlobalDataHandler.GetActualSceneName() == "HomeScene" || GlobalDataHandler.GetActualSceneName() == "Tutorial") { return; } _body.position = new Vector3(_body.position.x, _body.position.y, 0); _pastDistance = 0; }
public OrbSetup(float swapTimer, float decay, Transform player, GlobalDataHandler globalData, State orbState, float[] mainTimers, float[] secondaryTimers, OrbElement orbType) { SwapTimer = swapTimer; Decay = decay; Player = player; GlobalData = globalData; OrbState = OrbState; MainAttackTimers = mainTimers; SecondaryAttackTimers = secondaryTimers; OrbType = orbType; }
public static void GameStart() { if (GlobalDataHandler.GetGameModus()) { return; //Fürs debugging, beeinträchtigt aber nicht das normale Spiel. } if (GameStartEventMethods != null) { GameStartEventMethods(); } }
void Start() { _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>(); _map = GameObject.FindGameObjectWithTag("Map").GetComponent <Tilemap>(); _map.CompressBounds(); _time = 0; _spawnTimer = 0; _multiplierTimer = _time + 30f; _multiplier = 1f; _pointMultiplier = 1; }
/// <summary> /// Funktion, wird von Unity mehrmals pro Frame aufgerufen. /// </summary> private void FixedUpdate() { if (!GlobalDataHandler.PlayerAtCtrlPoint()) { _inputs = Vector3.zero; _inputs.z = IsPlayerOnTrack() ? 1 : 0; // Erhöhe die Spielergeschwindigkeit beim Erreichen eines Meilensteins if (!GlobalDataHandler.GetActualSceneName().Contains("Tutorial") && GlobalDataHandler.GetPlayerPosition() >= GlobalDataHandler.GetNextMilestone()) { EventManager.IncreaseSpeedAndMilestone(); } //Beende das Spiel, wenn der Spieler von der Strecke fällt if (!_isGrounded && _body.transform.position.y < Gulf) { EventManager.GameEnd(); } //Aktualisiere die Punktzahl basierend auf der zurückgelegten Distanz int delta = (int)(_body.transform.position.z - _pastDistance); ScoreHandler.IncreasePlayerScore(delta); _pastDistance = (int)_body.transform.position.z; } if (!GlobalDataHandler.GetGameModus()) { return; } //Berechne die Geschwindigkeit des Spielers switch (GlobalDataHandler.GetRunMode()) { case RunMode.Faster: GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed() * 2); break; case RunMode.Normal: GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed()); break; case RunMode.Slower: GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed() / 2); break; case RunMode.Idle: GlobalDataHandler.SetPlayerspeed(0); break; } //Berechne die neue Position des Spielers _body.position += _inputs * GlobalDataHandler.GetPlayerspeed() * Time.fixedDeltaTime; }
/// <summary> /// Funktion, versucht der Objektliste das angegebene Item hinzuzufügen. Hierbei wird überprüft, ob die Liste /// voll ist, die Position des Objektes schon vergeben ist und die Spawnentfernung bzgl. des Spielers ausreicht. /// </summary> /// <param name="go">Das Objekt, welches der Liste hinzugefügt werden soll</param> /// <param name="isCollectible">Gibt an, ob das Objekt ein Collectible ist</param> /// <returns>True, wenn das Objekt der Liste hinzugefügt wurde. Ansonsten false</returns> public bool AddItem(GameObject go, bool isCollectible) { if (!IsListFull() && !IsPositionUsed(go.transform, isCollectible) && ((GlobalDataHandler.GetPlayerPosition() + MaxSpawnDistance) - go.transform.position.z > 0)) { _objectList.Add(go); return(true); } else { return(false); } }
/// <summary> /// Funktion, wird von Unity ausgeführt, wenn das Skript aktiviert wird. Diese Funktion wird vor der /// Update Methode ausgeführt. /// </summary> private void Start() { _scoreLabel = _scoreUi.GetComponent <Text>(); _timerLabel = _timerUi.GetComponent <Text>(); if (!GlobalDataHandler.GetGameModus()) { return; } _scoreLabel.color = new Color(255, 255, 255, 1); _timerLabel.color = new Color(178, 0, 0, 1); }
// Update is called once per frame void Update() { if (VRSF_Components.DeviceLoaded != EDevice.SIMULATOR) { return; } audioListener.enabled = true; var _input = Vector3.zero; _input.x = Input.GetAxis("Horizontal"); _input.y = Input.GetAxis("Vertical"); _parentTransform.position += _input * GlobalDataHandler.GetPlayerspeed() * Time.deltaTime; }
private void Start() { _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>(); SwitchPanels(); for (int i = 0; i < _inputs.Length; i++) { if (i == 4) { continue; } _inputs[i].text = _globalData.Keys[(GlobalDataHandler.Key)i].ToString(); } }
/// <summary> /// Funktion, wird von Unity jeden Frame aufgerufen. /// </summary> private void Update() { if (!GlobalDataHandler.GetGameModus()) { return; } if (!_objList.IsListFull()) { SpawnObject(); SpawnCollectibles(); } DeleteObjects(); }
/// <summary> /// Funktion, wird von Unity beim Start einmalig ausgeführt, wenn alle Objekte initialisiert worden sind. /// </summary> void Awake() { if (_instance == null) { _instance = this; DontDestroyOnLoad(gameObject); } else if (_instance != this) { Destroy(gameObject); _instance.gameObject.SetActive(false); _instance.gameObject.SetActive(true); } ResetGlobalData(); }
void Start() { if (!photonView.IsMine) { return; } _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>(); _map = GameObject.FindGameObjectWithTag("Map").GetComponent <Tilemap>(); GameObject.FindGameObjectWithTag("Level UI").GetComponent <UI.LevelUI>().Player = this; GameObject.FindGameObjectWithTag("MainCamera").GetComponent <CameraBehaviour>().Player = transform; _maxHealth = _globalData.PlayerMaxHealth; CurrentHealth = _maxHealth; _speed = _globalData.PlayerSpeed; CreateNewOrb(); }
/// <summary> /// Funktion, wird von Unity jeden Frame aufgerufen. /// </summary> void Update() { // Startet das Spiel und der Spieler rennt los if (Input.GetKeyDown("g")) { EventManager.GameStart(); } // Beendet das Spiel und führt einen Reset aus if (Input.GetKeyDown("r")) { EventManager.GameEnd(); EventManager.GameReset(); } // Aktiviert das eingesammelte Item if (Input.GetKeyDown("v") && GlobalDataHandler.GetGameModus()) { EventManager.ActivatePlayersInventoryItem(); } // De- / aktiviert den Kollisionsmodus if (Input.GetKeyDown("c")) { GlobalDataHandler.ToggleCollisionState(); } // Verlässt einen Kontrollpunkt if (Input.GetKeyDown("w")) { EventManager.LeaveCtrlPoint(); } // De- / aktiviert die Spielsounds if (Input.GetKeyDown("k")) { EventManager.MuteAudio(); } // Beendet das Spiel und spawnt den Spieler in der HomeScene if (Input.GetKeyDown(KeyCode.Escape)) { EventManager.GameEnd(); EventManager.DeleteVrStuff(); EventManager.SwitchScene("HomeScene"); } }
/// <summary> /// Funktion, wird von Unity jeden Frame aufgerufen. /// </summary> private void Start() { if (GlobalDataHandler.GetActualSceneName() != "HomeScene") { return; } List <int> scoreTable = ScoreTableCtrl.GetScoreTable(); int i = 0; foreach (var textToChange in ScoreTableInScene.GetComponentsInChildren <Text>()) { textToChange.text = scoreTable[i].ToString(); i++; } }
/// <summary> /// Funktion, wird von Unity jeden Frame aufgerufen. /// </summary> private void Update() { var plyrScore = ScoreHandler.GetPlayerScore(); // Setze die Punktzahl, wenn der Spieler nicht in der HomeScene ist if (GlobalDataHandler.GetActualSceneName() != "HomeScene") { _scoreLabel.text = plyrScore <= 0 ? "0" : plyrScore.ToString(); } // Zeige die UI Elemente an, wenn der Spieler in einem Level ist if (GlobalDataHandler.GetActualSceneName() != "Tutorial" && _scoreUi != null && _timerUi != null) { _scoreUi.SetActive(GlobalDataHandler.GetGameModus()); _timerUi.SetActive(GlobalDataHandler.GetGameModus()); } }
/// <summary> /// Funktion, wird jeden Frame aufgerufen und lässt die Zacken bei Bedarf hochfliegen. /// </summary> void Update() { //Überprüft, ob sich der Spieler nahe genug am Zacken befindet if (_grounded && ((transform.position.z - GlobalDataHandler.GetPlayerPosition()) < _differenceToPlayer)) { //Spielt den Sound ab if (!_soundPlayed) { EventManager.PlayStoneGrindSound(); _soundPlayed = true; } //Interpoliert die Position = Hochfahren des Zackens transform.localPosition = Vector3.Slerp(transform.localPosition, new Vector3(transform.localPosition.x, _newHeight, transform.localPosition.z), Time.time * _upSpeed); } }
/// <summary> /// Berechnung des nächsten Streckenabschnitts und Löschen der vorherigen Streckenabschnitte /// </summary> public void Update() { // Initialisiere den TrackController, wenn dies noch nicht passiert ist if (!_isInitialized) { InitializeTrackController(); return; } int actualTracktileIndex = _numberOfTilesDisplayed / 2; float endOfTracktile = ActiveTiles[actualTracktileIndex].GetComponent <MeshRenderer>().bounds.max.z; // Wechselt der Spieler den aktuellen Streckenabschnitt wird ein neuer Streckenabschnitt gespawnt und der // erste gelöscht if (GlobalDataHandler.GetPlayerPosition() > endOfTracktile) { SpawnTile(GetTrackTile()); DestroyTile(); } }
/// <summary> /// Callback Funktion für die Erkennung einer Kollision des Objekts an dem das Script angefügt ist. /// </summary> /// <param name="other">Objekt mit dem "this" kollidiert ist.</param> private void OnTriggerEnter(Collider other) { if (!GlobalDataHandler.GetCollisionState()) { return; } // Kollisionsbehandlung beim Einsammeln von Punkten if (other.gameObject.CompareTag("Points")) { EventManager.ScoreObjectCollected(); //Fügt dem Inventar hinzu bis die Punkte oben am Score angekommen sind other.transform.parent = InventoryHandler.transform; if (GlobalDataHandler.GetActualSceneName() != "Tutorial") { _objList.RemoveFromList(other.gameObject); } } }
/// <summary> /// Funktion, wird von Unity jeden Frame nach dem Auufruf aller Update Methoden aufgerufen. /// </summary> private void LateUpdate() { EventManager.UpdateTimerDisplay(); if (_timer != null) { if (GlobalDataHandler.GetGameModus()) { if (!_timer.ElapsedCountdownTimer() || _activeItemName.Equals(ItemType.None)) { return; } if (_timer.ElapsedCountdownTimer()) { _timer = null; } } else { _timer = null; } } else { _previousTimerVal = TimerInitVal; } // Wird ausgeführt wenn der Timer des aktuellen Items ausgelaufen ist // Dabei werden alle Änderungen die durch die Items ausgelöst wurden zurückgeführt if ((_activeItemName.Equals(ItemType.Faster) || _activeItemName.Equals(ItemType.Slower)) && GlobalDataHandler.GetRunMode() != RunMode.Idle) { GlobalDataHandler.SetRunMode(RunMode.Normal); } else if (GlobalDataHandler.IsMultiplierActive()) { GlobalDataHandler.SetMultiplierActive(!GlobalDataHandler.IsMultiplierActive()); } _activeItemName = ItemType.None; }
/// <summary> /// Funktion, aktiviert ein Item, welches sich im Inventar befindet. Falls kein Item im Inventar ist, passiert nichts. /// </summary> private void ActivateItem() { // Unterbreche die Funktion im Fehlerfall, dass sie aufgerufen wurde obwohl kein Item // eingesammelt wurde. if (_item == null || !_activeItemName.Equals(ItemType.None)) { return; } /* Timer setzen */ // Wenn der Timer bereits aktiv ist prüfen ob gleiches Item auch in der _itemBag vorhanden ist. if (_timer != null) { if (!_timer.ElapsedCountdownTimer() && _item.GetComponent <ControllerItem>().ItemType.Equals(_activeItemName)) { _timer = new TimerRef(_timer.GetTime() + TimerDuration); } } else // Erstelle einen neuen Timer wenn noch kein Item aktiv ist. { _timer = new TimerRef(5); } // Item aktivieren if (_item.GetComponent <ControllerItem>().ItemType.Equals(ItemType.ScoreMultiplier)) { GlobalDataHandler.SetMultiplierActive(!GlobalDataHandler.IsMultiplierActive()); } else { GlobalDataHandler.SetRunMode((_item.GetComponent <ControllerItem>().ItemType.Equals(ItemType.Faster)) ? RunMode.Faster : RunMode.Slower); } _activeItemName = _item.GetComponent <ControllerItem>().ItemType; RemoveItem(); }
/// <summary> /// Funktion, initialisiert den TrackController und spawnt die festgelegten Streckenabschnitte vor und hinter dem /// Spieler. /// </summary> private void InitializeTrackController() { _numberOfTilesDisplayed = NumberOfTilesBehindDisplayed + NumberOfTilesInFrontDisplayed; float lengthOfTilesBehind = 0; List <GameObject> spawnTiles = new List <GameObject>(); ActiveTiles = new List <GameObject>(); //Initialisiere die ersten Streckenteile for (int i = 0; i < _numberOfTilesDisplayed; i++) { GameObject newTrack = GetTrackTile(); spawnTiles.Add(newTrack); if (i < NumberOfTilesBehindDisplayed) { lengthOfTilesBehind += newTrack.GetComponent <MeshRenderer>().bounds.size.z; } } //Initiale Spawnposition _lastSpawnPosZ = GlobalDataHandler.GetPlayerPosition() - lengthOfTilesBehind + (spawnTiles[0].GetComponent <MeshRenderer>().bounds.size.z / 2); // Fülle das Streckenarray foreach (var tile in spawnTiles) { SpawnTile(tile); } spawnTiles.Clear(); _isInitialized = true; }
void Start() => _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>();