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; } }
// Update is called once per frame void Update() { if (tellingCompanionWhereToGo) { if (companionToMove != null) { companionToMove.GetComponent <NavMeshAgent>().SetDestination(magnetPoint.transform.position); if (Vector3.Distance(companionToMove.transform.position, magnetPoint.transform.position) <= 2.0f) { companionToMove.GetComponent <Animator>().SetFloat("Speed", 0f); } if (endOnTimer) { if (Time.time > magnetTime + magnetStartTime) { ReturnCompanion(); } } } } }