Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
 public void RemoveMirror(mirrorData mirror)
 {
     mirrors_.Remove(mirror);
 }
Exemplo n.º 3
0
 public void AddMirror(mirrorData mirror)
 {
     mirrors_.Add(mirror);
 }