//load game public void Load() { PlayerData playerData = saveLoadPlayer.LoadData(); if (playerData != null) { MapName savedMap = (MapName)playerData.map; //don't load if the data is for a different map if (savedMap == 0 || savedMap.Equals(mapName)) { score = playerData.score; PlayerPrefs.SetInt("CurrentScore", score); float[] c = playerData.coords; coords = new Vector3(c[0], c[1], c[2]); player.transform.position = coords; var playerMove = player.GetComponent <PlayerMovement>(); AbilityProcessor.Fetch((PlayerAbilities)playerData.abilityType, playerMove); ProjectileProcessor.SetProjectileName((PlayerProjectiles)playerData.projectileType); /* * Sample Hierarchy of GameObject Tile * to change the checkpoint image * Tile * -> Obstacles * -> Checkpoint1 * -> CheckpointScript * * Process: * - Find the child gameobject using the name * - Call the ChangeState() of the child script */ //name of the loaded checkpoint checkpointTag = playerData.checkpointTag; //gets the list its children Transform[] childrenObj = tileObject.GetComponentsInChildren <Transform>(); foreach (Transform obj in childrenObj) { //if name matches with checkpointTag, change the state if (obj.name == checkpointTag) { CheckpointScript objScript = obj.GetComponent <CheckpointScript>(); objScript.ForceWave(); break; } } } else { Debug.Log("Data is for the different map. Data is not loaded"); } } }
void Awake() { //config variables m_Rigidbody2D = GetComponent <Rigidbody2D>(); //config ability and the verifier a_Verifier = gameObject.AddComponent <AbilityVerifier>(); AbilityProcessor.Fetch(chosenAbility, this); if (OnLandEvent == null) { OnLandEvent = new UnityEvent(); } }