示例#1
0
    //------------------------------------------------
    //Function called when loading is complete
    public void LoadGameComplete(Component Sender)
    {
        //Cycle through enemies and find matching ID
        List <LoadSaveManager.GameStateData.DataEnemy> enemies = GameManager.StateManager.GameState.Enemies;

        //Reference to this enemy
        LoadSaveManager.GameStateData.DataEnemy thisEnemy = enemies
                                                            .FirstOrDefault(enemy => { return(enemy.EnemyID == EnemyId); });

        //If we reach here and no enemy is found, then it was destroyed when saved.So destroy now
        if (thisEnemy == null)
        {
            DestroyImmediate(gameObject);
            return;
        }

        //Else load enemy data
        EnemyId = thisEnemy.EnemyID;
        Health  = thisEnemy.Health;

        //Set position
        Agent.Warp(new Vector3(thisEnemy.PosRotScale.X, thisEnemy.PosRotScale.Y, thisEnemy.PosRotScale.Z));

        //Set rotation
        ThisTransform.localRotation = Quaternion.Euler(thisEnemy.PosRotScale.RotX, thisEnemy.PosRotScale.RotY, thisEnemy.PosRotScale.RotZ);

        //Set scale
        ThisTransform.localScale = new Vector3(thisEnemy.PosRotScale.ScaleX, thisEnemy.PosRotScale.ScaleY, thisEnemy.PosRotScale.ScaleZ);
    }
示例#2
0
    /// <summary>
    /// Prepare data to load this enemy.
    /// </summary>
    /// <param name="sender">The component sender object.</param>
    public void LoadGameComplete(Component sender)
    {
        //Cycle through enemies and find matching ID
        List <LoadSaveManager.GameStateData.DataEnemy> enemies = GameManager.StateManager.GameState.Enemies;

        //Reference to this enemy
        LoadSaveManager.GameStateData.DataEnemy thisEnemy = null;

        for (int i = 0; i < enemies.Count; i++)
        {
            if (enemies[i].EnemyID == EnemyID)
            {
                //Found enemy. Now break break from loop
                thisEnemy = enemies[i];
                break;
            }
        }

        //If we can't find this enemy then it must have been destroyed on save
        if (thisEnemy == null)
        {
            DestroyImmediate(gameObject);
            return;
        }

        //We've got this far so load the enemy data
        EnemyID = thisEnemy.EnemyID;    //This is set from the inspector so not much point in reloading, keeping with the book code however
        Health  = thisEnemy.Health;

        //Set position, rotation and scale (position done with warp)
        agent.Warp(new Vector3(thisEnemy.PosRotScale.X, thisEnemy.PosRotScale.Y, thisEnemy.PosRotScale.Z));
        thisTranform.localRotation = Quaternion.Euler(thisEnemy.PosRotScale.RotX, thisEnemy.PosRotScale.RotY, thisEnemy.PosRotScale.RotZ);
        thisTranform.localScale    = new Vector3(thisEnemy.PosRotScale.ScaleX, thisEnemy.PosRotScale.ScaleY, thisEnemy.PosRotScale.ScaleZ);
    }
示例#3
0
    public void SaveGamePrepare()
    {
        List <LoadSaveManager.GameStateData.DataEnemy> enemies =
            GameManager.StateManager.gameState.enemies;

        for (int i = 0; i < enemies.Count; i++)
        {
            if (enemies[i].enemyID == enemyID)
            {
                // Found enemy. Now break break from loop
                GameManager.StateManager.gameState.enemies.Remove(enemies[i]);
                break;
            }
        }

        LoadSaveManager.GameStateData.DataEnemy data = new LoadSaveManager.GameStateData.DataEnemy();

        data.enemyID   = GetComponent <UniqueId>().uniqueId;
        data.saveAlive = alive;

        data.posRotScale.posX = transform.position.x;
        data.posRotScale.posY = transform.position.y;
        data.posRotScale.posZ = transform.position.z;

        data.posRotScale.rotX = transform.localEulerAngles.x;
        data.posRotScale.rotY = transform.localEulerAngles.y;
        data.posRotScale.rotZ = transform.localEulerAngles.z;

        data.posRotScale.scaleX = transform.localScale.x;
        data.posRotScale.scaleY = transform.localScale.y;
        data.posRotScale.scaleZ = transform.localScale.z;

        //Add enemy to Game State
        GameManager.StateManager.gameState.enemies.Add(data);
    }
    public void LoadGameComplete()
    {
        // Cycle through enemies and find matching ID
        List <LoadSaveManager.GameStateData.DataEnemy> enemies3 =
            GameManager.StateManager.gameState.enemies3;

        // Reference to this enemy
        LoadSaveManager.GameStateData.DataEnemy data = null;

        for (int i = 0; i < enemies3.Count; i++)
        {
            if (enemies3[i].enemyID == enemyID)
            {
                // Found enemy. Now break break from loop
                data = enemies3[i];
                break;
            }
        }

        // If here and no enemy is found, then it was destroyed when saved. So destroy.
        if (data == null)
        {
            Debug.Log("was null");
            //CanvasManager canvas = FindObjectOfType<CanvasManager>();
            CanvasManager canvas = FindObjectOfType <CanvasManager>();
            canvas.chaseRef.Remove(this);
            Destroy(gameObject);
            return;
        }

        // Else load enemy data
        enemyID = data.enemyID;
        alive   = data.saveAlive;
        health  = data.health;

        // Set position
        transform.position = new Vector3(data.posRotScale.posX,
                                         data.posRotScale.posY, data.posRotScale.posZ);

        // Set rotation
        transform.localRotation = Quaternion.Euler(data.posRotScale.rotX,
                                                   data.posRotScale.rotY, data.posRotScale.rotZ);

        // Set scale
        transform.localScale = new Vector3(data.posRotScale.scaleX,
                                           data.posRotScale.scaleY, data.posRotScale.scaleZ);
    }
    //------------------------------------------------
    //Function called when saving game
    public void SaveGamePrepare(Component Sender)
    {
        //Create enemy data for this enemy
        LoadSaveManager.GameStateData.DataEnemy ThisEnemy = new LoadSaveManager.GameStateData.DataEnemy();

        //Fill in data for current enemy
        ThisEnemy.EnemyID            = EnemyID;
        ThisEnemy.Health             = Health;
        ThisEnemy.PosRotScale.X      = ThisTransform.position.x;
        ThisEnemy.PosRotScale.Y      = ThisTransform.position.y;
        ThisEnemy.PosRotScale.Z      = ThisTransform.position.z;
        ThisEnemy.PosRotScale.RotX   = ThisTransform.localEulerAngles.x;
        ThisEnemy.PosRotScale.RotY   = ThisTransform.localEulerAngles.y;
        ThisEnemy.PosRotScale.RotZ   = ThisTransform.localEulerAngles.z;
        ThisEnemy.PosRotScale.ScaleX = ThisTransform.localScale.x;
        ThisEnemy.PosRotScale.ScaleY = ThisTransform.localScale.y;
        ThisEnemy.PosRotScale.ScaleZ = ThisTransform.localScale.z;

        //Add enemy to Game State
        GameManager.StateManager.GameState.Enemies.Add(ThisEnemy);
    }
示例#6
0
    /// <summary>
    /// Prepare data to save this enemy.
    /// </summary>
    /// <param name="sender">The component sender object.</param>
    public void SaveGamePrepare(Component sender)
    {
        //Create a reference for this enemy
        LoadSaveManager.GameStateData.DataEnemy thisEnemy = new LoadSaveManager.GameStateData.DataEnemy();

        //Fill in data for the current enemy
        thisEnemy.EnemyID            = EnemyID;
        thisEnemy.Health             = Health;
        thisEnemy.PosRotScale.X      = thisTranform.position.x;
        thisEnemy.PosRotScale.Y      = thisTranform.position.y;
        thisEnemy.PosRotScale.Z      = thisTranform.position.z;
        thisEnemy.PosRotScale.RotX   = thisTranform.localEulerAngles.x;
        thisEnemy.PosRotScale.RotY   = thisTranform.localEulerAngles.y;
        thisEnemy.PosRotScale.RotZ   = thisTranform.localEulerAngles.z;
        thisEnemy.PosRotScale.ScaleX = thisTranform.localScale.x;
        thisEnemy.PosRotScale.ScaleY = thisTranform.localScale.y;
        thisEnemy.PosRotScale.ScaleZ = thisTranform.localScale.z;

        //Add this enemy to the list
        GameManager.StateManager.GameState.Enemies.Add(thisEnemy);
    }
    //------------------------------------------------
    //Function called when loading is complete
    public void LoadGameComplete(Component Sender)
    {
        //Cycle through enemies and find matching ID
        List <LoadSaveManager.GameStateData.DataEnemy> Enemies = GameManager.StateManager.GameState.Enemies;

        //Reference to this enemy
        LoadSaveManager.GameStateData.DataEnemy ThisEnemy = null;

        for (int i = 0; i < Enemies.Count; i++)
        {
            if (Enemies[i].EnemyID == EnemyID)
            {
                //Found enemy. Now break break from loop
                ThisEnemy = Enemies[i];
                break;
            }
        }

        //If we reach here and no enemy is found, then it was destroyed when saved. So destroy now
        if (ThisEnemy == null)
        {
            DestroyImmediate(gameObject); return;
        }

        //Else load enemy data
        EnemyID = ThisEnemy.EnemyID;
        Health  = ThisEnemy.Health;

        //Set position
        Agent.Warp(new Vector3(ThisEnemy.PosRotScale.X, ThisEnemy.PosRotScale.Y, ThisEnemy.PosRotScale.Z));

        //Set rotation
        ThisTransform.localRotation = Quaternion.Euler(ThisEnemy.PosRotScale.RotX, ThisEnemy.PosRotScale.RotY, ThisEnemy.PosRotScale.RotZ);

        //Set scale
        ThisTransform.localScale = new Vector3(ThisEnemy.PosRotScale.ScaleX, ThisEnemy.PosRotScale.ScaleY, ThisEnemy.PosRotScale.ScaleZ);
    }
示例#8
0
    //------------------------------------------------
    //Function called when saving game
    public void SaveGamePrepare(Component Sender)
    {
        //Create enemy data for this enemy
        LoadSaveManager.GameStateData.DataEnemy ThisEnemy = new LoadSaveManager.GameStateData.DataEnemy();

        //Fill in data for current enemy
        ThisEnemy.EnemyID = EnemyID;
        ThisEnemy.Health = Health;
        ThisEnemy.PosRotScale.X = ThisTransform.position.x;
        ThisEnemy.PosRotScale.Y = ThisTransform.position.y;
        ThisEnemy.PosRotScale.Z = ThisTransform.position.z;
        ThisEnemy.PosRotScale.RotX = ThisTransform.localEulerAngles.x;
        ThisEnemy.PosRotScale.RotY = ThisTransform.localEulerAngles.y;
        ThisEnemy.PosRotScale.RotZ = ThisTransform.localEulerAngles.z;
        ThisEnemy.PosRotScale.ScaleX = ThisTransform.localScale.x;
        ThisEnemy.PosRotScale.ScaleY = ThisTransform.localScale.y;
        ThisEnemy.PosRotScale.ScaleZ = ThisTransform.localScale.z;

        //Add enemy to Game State
        GameManager.StateManager.GameState.Enemies.Add(ThisEnemy);
    }