void Update() { if (!disabled && companion != null) { Vector3 position = transform.position; position += Vector3.up * 0.8f; position -= transform.forward * 0.5f; if (pointsPlaced == 0) { companion.AddPosition(position); pointsPlaced++; } if (companion.isFollowing() && (!character.isIdle() || onMovingObject)) { float distance = Vector3.Distance(transform.position, companion.getLastPosition()); if (distance >= deltaPoints) { companion.AddPosition(position); pointsPlaced++; } } } else if (companion == null && GameObject.FindGameObjectWithTag("Companion") != null) { companion = GameObject.FindGameObjectWithTag("Companion").GetComponent <CompanionPlus>(); } }
// Use this for initialization void Start() { respawnLocation = transform.position; respawnRotation = transform.rotation; cc = gameObject.GetComponent <CharacterController>(); GameObject temp = GameObject.FindGameObjectWithTag("Companion"); if (temp != null) { companion = temp.GetComponent <CompanionPlus>(); } }
private static void SetLevelData(GameData data) { GameManager.puzzleStep = data.GetPuzzles(); GameManager.level = data.GetLevel(); GameManager.score = data.GetScore(); CompanionPlus companion = GameObject.FindGameObjectWithTag("Companion").GetComponent <CompanionPlus>(); companion.Respawn(); if (GameManager.characters != null) { for (int i = 0; i < GameManager.characters.Length; i++) { if (GameManager.characters[i].tag == "Enemy") { GameObject.Destroy(GameManager.characters[i]); } } GameObject enemy = Resources.Load <GameObject>("Prefab_Enemy"); if (enemy == null) { Debug.LogError("Enemy prefab not found!"); } else { EnemyData[] enemyData = data.GetEnemies(); for (int i = 0; i < data.GetEnemies().Length; i++) { GameObject enemyClone = GameObject.Instantiate(enemy, enemyData[i].GetPosition(), enemyData[i].GetRotation()); enemyClone.GetComponent <Health>().SetHealth(enemyData[i].GetHealth()); enemyClone.GetComponent <AICharacterControl>().SetIsFollowing(enemyData[i].GetIsFollowing()); } } } PlayerData playerData = data.GetPlayer(); if (playerData == null) { Debug.LogError("Player not found!"); } else { GameObject player = GameObject.FindGameObjectWithTag("Player"); player.GetComponent <Health>().SetHealth(playerData.GetHealth()); player.transform.SetPositionAndRotation(playerData.GetPosition(), playerData.GetRotation()); GameManager.ammo = playerData.GetAmmo(); GameManager.hasJetpack = playerData.GetHasJetPack(); } }