private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Player") { p = other.gameObject; Vector3 p_refl_pos; p_refl_pos = MirrorManager.Obj_Refl_Pos(mirror_direction_, p.transform.position); // instatiate reflected player p_ins = GameObject.Instantiate(p.gameObject, p_refl_pos, Quaternion.identity); // change reflected player tag p_ins.gameObject.tag = "Player_ins"; p_ins.gameObject.layer = LayerMask.NameToLayer("Player_ins"); // disable the "Player_Movement" in reflected player p_ins.gameObject.GetComponent <PlayerMovement>().enabled = false; // now we know that the main player is in the mirror area p.gameObject.GetComponent <PlayerMovement>().IsInTheMirror = true; var last_pos_ins = p_ins.transform.position; var last_pos_main = p.transform.position; var p_rb = p.gameObject.GetComponent <Rigidbody>(); var p_ins_rb = p_ins.gameObject.GetComponent <Rigidbody>(); enabled = true; mirrorData = new mirrorData(p_ins, p, p_ins_rb, p_rb, last_pos_ins, last_pos_main, mirror_direction_); MirrorManager.singletone.AddMirror(mirrorData); } }
public void RemoveMirror(mirrorData mirror) { mirrors_.Remove(mirror); }
public void AddMirror(mirrorData mirror) { mirrors_.Add(mirror); }