コード例 #1
0
    void UpdateInteractive()
    {
        RaycastHit hit;

        if (Physics.Raycast(_mCamera.ScreenPointToRay(screenCenter), out hit))
        {
            Debug.DrawLine(Camera.main.transform.position, hit.point);
            if (hit.collider != null)
            {
                //显示3D鼠标
                if (!invisible)
                {
                    SetMouse2D(false);
                }
                mouseIcon3D.transform.position = hit.point;
                mouseIcon3D.forward            = -hit.normal;
                TDButtonItem tmpBtn = hit.transform.GetComponent <TDButtonItem>();
                if (tmpBtn != null)
                {
                    //同一个按钮不作操作
                    if (curBtn == tmpBtn)
                    {
                        return;
                    }
                    //从一个按钮射到另一个按钮
                    if (curBtn != null && curBtn != tmpBtn)
                    {
                        //上一个按钮执行退出操作
                        curBtn.MouseExit();
                        //隐藏鼠标倒计时
                        StopFillImage();
                    }
                    curBtn = tmpBtn;
                    //鼠标经过操作
                    curBtn.MouseHover();
                    if (!invisible)
                    {
                        var dis = Vector3.Distance(_mCamera.transform.position, hit.point);
                        ShowMouseCountDown(tmpBtn.MouseSelect, dis);
                    }
                }
                else
                {
                    ClearBtnHover();
                }
            }
            else
            {
                ClearBtnHover();
            }
        }
        //显示鼠标
        else
        {
            ClearBtnHover();
        }
    }
コード例 #2
0
 void ClearBtnHover()
 {
     if (curBtn != null)
     {
         //上一个按钮执行退出操作
         curBtn.MouseExit();
         curBtn = null;
     }
     SetMouse2D(true);
 }