如何模拟鼠标添加事件?

时间:2015-08-20 01:50:35

标签: unity3d

我的代码中有一个错误:当我将鼠标从屏幕上释放时,统一无法检测到“GetMouseButtonUp”,当我将释放的鼠标移回屏幕时,它会检测到“GetMouseButton”不应该。

所以当鼠标离开屏幕时,我想要模拟发送鼠标向上事件让团结检测“GetMouseButtonUp”。

如何模拟鼠标事件?

2 个答案:

答案 0 :(得分:1)

伪代码

bool mouseIsDown = false;

public void Update()
{
    Rect screenRect = new Rect(-Screen.width/2, -Screen.height/2, Screen.width, Screen.height);

    If(screenRect.Contains(Input.mousePosition))
    {
        if(mouseIsDown && !Input.GetMouseButton(0))
            OnMouseUp();

        if(Input.GetMouseButton(0))
        {
            OnMouse();
            if(!mouseIsDown)
            {
                OnMouseDown();
                mouseIsDown = true;
            }
        }
    }
}

public void OnMouseDown()
{
    // Do something
}

public void OnMouse()
{
    // Do something
}

public void OnMouseUp()
{
    // Do something
}

答案 1 :(得分:-1)

我不确定我是否正确理解你的问题。但是,您可以像使用Start() Update() Awake()等功能一样使用这些功能

void OnMouseUp () {
}

void OnMouseDown (){
}