// Update is called once per frame void Update() { if (mirror != null) { Mirror_warp mw = (Mirror_warp)(mirror.gameObject.GetComponent("Mirror_warp")); if (mw != null) { mw.warped = false; } } }
// Start is called before the first frame update void Start() { string time = SceneManagerWithParameters.GetParam("SongTime"); if (time != "") { song.time = float.Parse(time); } song.Play(); objectDict = new Dictionary <string, string>(); string name = SceneManager.GetActiveScene().name; string active = SceneManagerWithParameters.GetParam(name + "Active"); if (active == "") { GameObject[] destroyable = GameObject.FindGameObjectsWithTag("Breakable"); foreach (GameObject des in destroyable) { if (des.GetComponent <SpriteRenderer>().enabled == false) { objectDict.Add(des.name, "Destroyed"); } else { objectDict.Add(des.name, des.transform.position.ToString()); } } } else { string[] sArray = active.Split(';'); foreach (string s in sArray) { string[] unit = s.Split(':'); objectDict.Add(unit[0], unit[1]); } } player = GameObject.Find("Player"); if (SceneManagerWithParameters.GetParam("warped").Equals("true")) { mirror = GameObject.Find(SceneManagerWithParameters.GetParam("location")); Mirror_warp c = (Mirror_warp)mirror.gameObject.GetComponent("Mirror_warp"); if (c != null) { c.warped = true; } if (SceneManagerWithParameters.GetParam("type").Equals("sideways")) { float ydiff = float.Parse(SceneManagerWithParameters.GetParam("vertposition")); if (SceneManagerWithParameters.GetParam("orientation").Equals("left")) { player.transform.position = new Vector2(mirror.transform.position.x + c.distance, mirror.transform.position.y + ydiff); } else { player.transform.position = new Vector2(mirror.transform.position.x - c.distance, mirror.transform.position.y + ydiff); } string velString = SceneManagerWithParameters.GetParam("velocity"); player.GetComponent <Rigidbody2D>().velocity = StringToVector2(velString); } else { float xdiff = float.Parse(SceneManagerWithParameters.GetParam("horiposition")); player.transform.position = new Vector2(mirror.transform.position.x + xdiff, mirror.transform.position.y + c.distance); string velString = SceneManagerWithParameters.GetParam("velocity"); Rigidbody2D playerRb = player.GetComponent <Rigidbody2D>(); Vector2 v = StringToVector2(velString); v = new Vector2(v.x, -v.y); playerRb.velocity = v; } string destroyed = SceneManagerWithParameters.GetParam("Destroyed"); if (destroyed != "") { string[] sArray = destroyed.Split(','); foreach (string i in sArray) { obj = GameObject.Find(i); objectDict[i] = SceneManagerWithParameters.GetParam(i); Vector3 pos = StringToVector3(SceneManagerWithParameters.GetParam(i)); } destroyed = ""; SceneManagerWithParameters.SetParam("Destroyed", destroyed); } } foreach (string k in objectDict.Keys) { obj = GameObject.Find(k); if (objectDict[k].Equals("Destroyed")) { obj.GetComponent <Rigidbody2D>().simulated = false; obj.GetComponent <SpriteRenderer>().enabled = false; obj.GetComponent <BoxCollider2D>().enabled = false; } else { obj.transform.position = StringToVector3(objectDict[k]); obj.GetComponent <Rigidbody2D>().simulated = true; obj.GetComponent <SpriteRenderer>().enabled = true; obj.GetComponent <BoxCollider2D>().enabled = true; } } }