//------------------------------------------------ //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); }
/// <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); }
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); }
/// <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); }