Ejemplo n.º 1
0
    /// <summary>
    /// 将光标信息添加到数组
    /// </summary>
    /// <param name="_cursorType">光标类型</param>
    /// <param name="_strTexCursorPath">光标资源纹理路径</param>
    /// <param name="_bCenterHotspot">热点是否在纹理中心</param>
    /// <param name="_vec2Hotspot">热点坐标</param>
    private void AddCursorInfo(EMouseCursorType _cursorType, string _strTexCursorPath, bool _bCenterHotspot = true, Vector2 _vec2Hotspot = new Vector2())
    {
        /*鼠标资源是一直存在的,所以不用释放,等游戏结束直接释放即可*/
        ResNode curRes = AssetBundleManager.GetAssets(AssetType.Asset_Cursour, _strTexCursorPath);

        if (null == curRes)
        {
            Trace.LogError("设置光标注册点错误,光标纹理资源获取失败.加载资源:" + _strTexCursorPath + " 失败!");
            return;
        }
        Texture2D CursorTexture  = curRes.ConvertRes <Texture2D>();
        Vector2   tmpVec2Hotspot = Vector2.zero;

        if (CursorTexture == null && _cursorType != EMouseCursorType.MCT_None)
        {
            Trace.LogError("设置光标注册点错误,光标纹理资源获取失败.加载资源:" + _strTexCursorPath + " 失败!");
            return;
        }

        tmpVec2Hotspot = _vec2Hotspot;

        if (_bCenterHotspot)
        {
            tmpVec2Hotspot = new Vector2(CursorTexture.width / 2, CursorTexture.height / 2);
        }

        FCursorInfo newCursorInfo = new FCursorInfo(CursorTexture, tmpVec2Hotspot);

        dic_CursorInfo.Add(_cursorType, newCursorInfo);
    }
Ejemplo n.º 2
0
        // Sifaka START: Support Virtual Mouse Input
        private void UpdateActiveMouse()
        {
            var hardwareMouseMoved = (m_MousePosition - m_LastMousePosition).sqrMagnitude > 0.0f;
            var virtualMouseMoved  = (m_VirtualMousePosition - m_LastVirtualMousePosition).sqrMagnitude > 0.0f;

            if (CachedVirtualMouse == null || (hardwareMouseMoved && !virtualMouseMoved) || (!virtualMouseMoved && m_ActiveMouseType == EMouseCursorType.Hardware))
            {
                if (m_ActiveMouseType != EMouseCursorType.Hardware && CachedVirtualMouse != null)
                {
                    if (CachedVirtualMouse.IsMouseVisible())
                    {
                        CachedVirtualMouse.SetMouseVisibile(false);
                    }
                }
                m_ActiveMouseType = EMouseCursorType.Hardware;
            }
            else if (CachedVirtualMouse != null && virtualMouseMoved)
            {
                // Update virtual mouse to match hardware mouse
                if (m_ActiveMouseType != EMouseCursorType.Virtual)
                {
                    CachedVirtualMouse.SetMouseVisibile(true);
                    CachedVirtualMouse.SetVirtualMousePosition(m_MousePosition);
                }
                m_ActiveMouseType = EMouseCursorType.Virtual;
            }
        }
Ejemplo n.º 3
0
        private void InitialiseMousePosition()
        {
            m_MousePosition     = UnityEngine.Input.mousePosition;
            m_LastMousePosition = UnityEngine.Input.mousePosition;

            if (CachedVirtualMouse != null)
            {
                m_VirtualMousePosition     = CachedVirtualMouse.GetVirtualMousePosition();
                m_LastVirtualMousePosition = CachedVirtualMouse.GetVirtualMousePosition();
            }

            m_ActiveMouseType = EMouseCursorType.Hardware;

            _initialised = true;
        }