private void StartAtCheckPoint() { PlayerMovement player = FindObjectOfType <PlayerMovement>(); NavMeshAgent agent = player.GetComponent <NavMeshAgent>(); //Move the player agent.enabled = false; player.transform.position = transform.position + new Vector3(0, 2, 0.5f); agent.enabled = true; FindObjectOfType <PlayerMovement>().GetComponent <Keybearer>().posessedKey = PlayerPrefs.GetInt("PlayerKey"); //Move Companion if (PlayerPrefs.HasKey("CompanionPresent")) { mCompanion = GameObject.Find(PlayerPrefs.GetString("CompanionPresent")).GetComponent <CompanionAI>(); player.myCompanion = mCompanion; agent = mCompanion.GetComponent <NavMeshAgent>(); agent.enabled = false; if (PlayerPrefs.HasKey("DropOffLocation")) { mCompanion.transform.position = GameObject.Find(PlayerPrefs.GetString("DropOffLocation")).transform.position + new Vector3(0, 2, -0.5f); } else if (PlayerPrefs.HasKey("CompanionX")) { mCompanion.transform.position = new Vector3(PlayerPrefs.GetFloat("CompanionX"), PlayerPrefs.GetFloat("CompanionY") + 2, PlayerPrefs.GetFloat("CompanionZ") - 0.5f); } else { mCompanion.transform.position = transform.position + new Vector3(0, 2, -0.5f); } agent.enabled = true; } }
private void OnTriggerExit(Collider other) { CompanionAI ai = other.GetComponent <CompanionAI>(); if (ai != null) { ai.RemoveStressZone(this); } }
private void LevelWasLoaded(Scene _scene, LoadSceneMode _mode) { m_Hansel = GameObject.Find("Hansel"); m_Gretel = GameObject.Find("Gretel"); if (m_IsStartScreen) { m_MenuBGEventInstance.start(); return; } m_MenuBGEventInstance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT); if (m_PlayerIsHans) { m_Player = m_Hansel; m_Companion = m_Gretel; } else { m_Player = m_Gretel; m_Companion = m_Hansel; } m_Player.GetComponent <CompanionAI>().enabled = false; m_Player.GetComponentInChildren <Camera>().enabled = true; Player = m_Player.GetComponent <Playercontroller>(); Player.enabled = true; m_Companion.GetComponent <Playercontroller>().enabled = false; m_Companion.GetComponentInChildren <Camera>().enabled = false; Companion = m_Companion.GetComponent <CompanionAI>(); Companion.enabled = true; Terrain t = FindObjectOfType <Terrain>(); Transform goal = t.transform.Find("Goal"); Transform start = t.transform.Find("Start"); if (goal == null || start == null) { Debug.LogError("you forgot to define 'goal' and 'start' as positions in your terrain children"); } else { m_LastSafePlace = start.position; m_GoalPosition = goal.position; GoToSafePlace(m_LastSafePlace); } m_SpeechBubble = FindObjectOfType <SpeechBubble>(); if (!m_ToldAboutHoldHands) { m_ToldAboutHoldHands = true; m_SpeechBubble.SetBubble(SpeechBubble.Icon.NotHands, SpeechBubble.Icon.hands, m_Companion.transform); } }
private void SaveValues(Keybearer player) { PlayerPrefs.SetInt("PlayerKey", player.posessedKey); PlayerPrefs.SetString("Name", CheckpointName); PlayerPrefs.SetInt("CheckPointReached", 1); PlayerPrefs.SetString("CheckPointName", CheckpointName); //CompanionAI[] Companions = FindObjectsOfType<CompanionAI>(); mCompanion = player.GetComponent <PlayerMovement>().myCompanion; //If the player has a companion following him if (mCompanion != null) { //If it is actvely following and within range if ((mCompanion.activeFollow && Vector3.Distance(mCompanion.gameObject.transform.position, gameObject.transform.position) < 20)) { PlayerPrefs.SetString("CompanionPresent", mCompanion.name); } //If the companion is at a dropoff and shouldn't be left behind else if (mCompanion.atDropOff && !mCompanion.LeaveBehind && mCompanion.DropOff != null) { PlayerPrefs.SetString("CompanionPresent", mCompanion.name); PlayerPrefs.SetString("DropOffLocation", mCompanion.DropOff.name); } //If we just tell that companion to spawn at their last location else if (mCompanion.SpawnAtLastLocation) { PlayerPrefs.SetString("CompanionPresent", mCompanion.name); PlayerPrefs.SetFloat("CompanionX", mCompanion.transform.position.x); PlayerPrefs.SetFloat("CompanionY", mCompanion.transform.position.y); PlayerPrefs.SetFloat("CompanionZ", mCompanion.transform.position.z); } } else { PlayerPrefs.DeleteKey("CompanionPresent"); PlayerPrefs.DeleteKey("DropOffLocation"); PlayerPrefs.DeleteKey("CompanionX"); PlayerPrefs.DeleteKey("CompanionY"); PlayerPrefs.DeleteKey("CompanionZ"); } }