// Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log("Mouse down");

            RaycastHit hitInfo = new RaycastHit();
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo))
            {
                if (hitInfo.collider.gameObject == frontDoorCollider)
                {
                    moveDoor = true;
                    Debug.Log("Front door hit");
                    doorCollision = DoorCollision.FRONT;
                }
                else if (hitInfo.collider.gameObject == backDoorCollider)
                {
                    moveDoor = true;
                    Debug.Log("Back door hit");
                    doorCollision = DoorCollision.BACK;
                }
                else
                {
                    doorCollision = DoorCollision.NONE;
                }
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            moveDoor = false;
            Debug.Log("Mouse up");
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        UpdateDoorStatus();

        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit[] hits;

            hits = Physics.RaycastAll(Camera.main.ScreenPointToRay(Input.mousePosition), 2.0f);

            for (int i = 0; i < hits.Length; i++)
            {
                RaycastHit hitInfo = hits[i];

                if (hitInfo.collider.gameObject == frontDoorCollider)
                {
                    moveDoor      = true;
                    doorCollision = DoorCollision.FRONT;

                    if (!isOpen)
                    {
                        PlaySound(m_Locked);
                    }
                    else if (!m_AudioSource.isPlaying)
                    {
                        PlayLoopedSound(m_Open);
                    }
                }
                else if (hitInfo.collider.gameObject == backDoorCollider)
                {
                    moveDoor      = true;
                    doorCollision = DoorCollision.BACK;

                    if (!isOpen)
                    {
                        PlaySound(m_Locked);
                    }
                    else if (!m_AudioSource.isPlaying)
                    {
                        PlayLoopedSound(m_Open);
                    }
                }
                else
                {
                    doorCollision = DoorCollision.NONE;
                }
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            moveDoor = false;
            if (m_AudioSource.clip == m_Open)
            {
                m_AudioSource.Pause();
            }
        }
    }
Beispiel #3
0
 public Door(Vector2 position, Game1 game) : base(game, new Vector2(Chunk.TileSize * 3, Chunk.TileSize))
 {
     Position      = position + Vector2.UnitY * (Chunk.TileSize / 2);
     Sprite        = new AnimatedSprite(null, game, new Vector2(46, 32));
     doorCollision = new DoorCollision(Position, game);
 }