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>();
        }
    }
Esempio n. 3
0
    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();
        }
    }