纳金网

标题: Unity3D控制鼠标隐藏 [打印本页]

作者: 王者再临    时间: 2014-10-18 03:16
标题: Unity3D控制鼠标隐藏

今天学习的是控制鼠标指针的隐藏,相信大家都在看视频时发现,如果选择了全屏播放模式,过一会儿如果不移动鼠标的话,鼠标指针就会慢慢隐藏,便于大家欣赏大片

今天就带来一个脚本来实现这个功能。只要在场景中将如下脚本拖入任意游戏对象,运行场景,就可以看到效果了。

脚本如下:
using UnityEngine;
using System.Collections;


public class PointerManager : MonoBehaviour
{
    //定义一个鼠标状态的枚举
    public  enum PointerState
    {
        stateInvisible,
        stateVisible,
        stateSetInvisible,
        stateSetVisible
    }
   
    public PointerState pointerState = PointerState.stateSetInvisible;
    public float timeOutReset = 2f;




    private bool hideOverride = false;
    private float timeOutCounter;
    private Vector3 currentMousePosition;


    void Start()
    {
        //获得当前鼠标位置,以便判断是否移动了鼠标
        currentMousePosition = Input.mousePosition;
    }


    void Update()
    {
        switch (pointerState)
        {
            case PointerState.stateInvisible:
                if (!hideOverride)
                    //移动了鼠标,保持指针可见状态
                    if (Input.mousePosition != currentMousePosition)
                        pointerState = PointerState.stateSetVisible;
                break;
            case PointerState.stateVisible:
                //开始计时,如果鼠标长时间不动,则隐藏鼠标指针
                if (timeOutCounter > 0f)
                {
                    timeOutCounter -= Time.deltaTime;
                    Debug.Log(timeOutCounter);
                }
                else pointerState = PointerState.stateSetInvisible;
                break;
            case PointerState.stateSetInvisible:
                //隐藏鼠标指针
                Screen.showCursor = false;
                currentMousePosition = Input.mousePosition;
                //转换状态
                pointerState = PointerState.stateInvisible;
                break;
            case PointerState.stateSetVisible:
                //指针可见时,重新计时
                timeOutCounter = timeOutReset;
                Screen.showCursor = true;
                pointerState = PointerState.stateVisible;
                break;


        }
    }
}



作者: hyui    时间: 2014-10-18 03:53
Good to learn from code!




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5