Beispiel #1
0
    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("collide");
        RaycastHit[] rcasts = Physics.RaycastAll(RayShooter.transform.position, collision.contacts[0].point - RayShooter.transform.position);
        VdmDesktopManager.ActionInThisFrame = true;

        foreach (RaycastHit rcast in rcasts)
        {
            if (rcast.transform.gameObject.name != "Monitor")
            {
                continue;
            }
            Debug.Log(rcast.textureCoord + " " + RayShooter.transform.position + " " + collision.contacts[0].point + " " + rcast.point + " " + rcast.transform.gameObject.name);


            float dx = m_manager.GetScreenWidth(Screen);
            float dy = m_manager.GetScreenHeight(Screen);

            float vx = rcast.textureCoord.x;
            float vy = rcast.textureCoord.y;

            vy = 1 - vy;

            float x = (vx * dx);
            float y = (vy * dy);

            int iX = (int)x;
            int iY = (int)y;

            m_manager.SetCursorPos(iX, iY);
            m_manager.SimulateMouseLeftDown();
            m_manager.SimulateMouseLeftUp();

            m_manager.SetCursorPos(0, 0);
            VdmDesktopManager.ActionInThisFrame = true;
        }
    }
Beispiel #2
0
    public void CheckKeyboardAndMouse()
    {
        if (Input.GetKeyDown(m_manager.KeyboardShow))
        {
            VdmDesktopManager.ActionInThisFrame = true;

            m_lastShowClickStart = Time.time;

            if (Visible() == false)
            {
                Show();
                m_lastShowClickStart -= 10; // Avoid quick show/close
            }
        }

        if (Input.GetKey(m_manager.KeyboardShow))
        {
            VdmDesktopManager.ActionInThisFrame = true;

            m_manager.KeyboardDistance += Input.GetAxisRaw("Mouse ScrollWheel");
            m_manager.KeyboardDistance  = Mathf.Clamp(m_manager.KeyboardDistance, 0.2f, 100);

            m_positionNormal  = Camera.main.transform.position + Camera.main.transform.rotation * new Vector3(0, 0, m_manager.KeyboardDistance);
            m_positionNormal += m_manager.MultiMonitorPositionOffset * ScreenIndex;
            m_rotationNormal  = Camera.main.transform.rotation;
        }

        if (Input.GetKeyUp(m_manager.KeyboardShow))
        {
            VdmDesktopManager.ActionInThisFrame = true;

            if (Time.time - m_lastShowClickStart < 0.5f)
            {
                m_lastShowClickStart = 0;

                Hide();
            }
        }

        if (m_manager.KeyboardZoom != KeyCode.None)
        {
            if (Input.GetKeyDown(m_manager.KeyboardZoom))
            {
                if (m_zoom == false)
                {
                    m_zoomWithFollowCursor = true;
                    ZoomIn();
                }
                else
                {
                    ZoomOut();
                }
            }

            if ((m_zoom) && (m_zoomWithFollowCursor))
            {
                VdmDesktopManager.ActionInThisFrame = true;

                m_manager.KeyboardZoomDistance += Input.GetAxisRaw("Mouse ScrollWheel");
                m_manager.KeyboardZoomDistance  = Mathf.Clamp(m_manager.KeyboardZoomDistance, 0.2f, 100);

                // Cursor position in world space
                Vector3 cursorPos = m_manager.GetCursorPos();
                cursorPos.x = cursorPos.x / m_manager.GetScreenWidth(Screen);
                cursorPos.y = cursorPos.y / m_manager.GetScreenHeight(Screen);
                cursorPos.y = 1 - cursorPos.y;
                cursorPos.x = cursorPos.x - 0.5f;
                cursorPos.y = cursorPos.y - 0.5f;
                cursorPos   = transform.TransformPoint(cursorPos);

                Vector3 deltaCursor = transform.position - cursorPos;

                m_positionZoomed  = Camera.main.transform.position + Camera.main.transform.rotation * new Vector3(0, 0, m_manager.KeyboardZoomDistance);
                m_positionZoomed += m_manager.MultiMonitorPositionOffset * ScreenIndex;
                m_rotationZoomed  = Camera.main.transform.rotation;

                m_positionZoomed += deltaCursor;
            }
        }
    }