Beispiel #1
0
    public void Interact(Collider2D collider)
    {
        for (int i = 0; i < levers.Length; i++)
        {
            if (collider.bounds.Intersects(levers[i].GetComponent <Collider2D>( ).bounds))
            {
                Lever lever = levers[i].GetComponent <Lever>( );

                lever.Toggle( );

                for (int j = 0; j < doors.Length; j++)
                {
                    Door door = doors[j].GetComponent <Door>( );

                    if (door.GetID( ) == lever.GetID( ))
                    {
                        Bounds player1Bounds = player1.GetComponent <Collider2D>( ).bounds;
                        Bounds player2Bounds = player2.GetComponent <Collider2D>( ).bounds;
                        Bounds doorBounds    = door.GetComponent <Collider2D>( ).bounds;

                        if (player1Bounds.Intersects(doorBounds) || player2Bounds.Intersects(doorBounds))
                        {
                            lever.Toggle( );

                            return;
                        }

                        door.SetActive(lever.IsActive( ));
                    }
                }

                for (int j = 0; j < wires.Length; j++)
                {
                    Wire wire = wires[j].GetComponent <Wire>( );

                    if (wire.GetID( ) == lever.GetID( ))
                    {
                        wire.SetActive(lever.IsActive( ));
                    }
                }

                return;
            }
        }
    }