C# 禁用GUI纹理

C# 禁用GUI纹理,c#,unity3d,2d,C#,Unity3d,2d,我有一个适合我整个屏幕的gui纹理和一个附加到它的脚本。每当我按下GuitTexture上的屏幕时,就会根据鼠标位置发射一个投射物。问题是,我放了一个暂停按钮,当我按下它时,一个投射物会在游戏暂停之前发射。GuitTexture的脚本使用OnMouseDown方法,而pause按钮使用OnGui方法。请帮忙!我试着用布尔语,但没用。这两种方法似乎同时被调用。我的游戏也有类似的问题,可能不是最好的解决方案,但对我来说效果很好 暂停按钮位于屏幕左侧的顶部,因此当触摸/单击屏幕时,我测试了与按钮相同的

我有一个适合我整个屏幕的gui纹理和一个附加到它的脚本。每当我按下GuitTexture上的屏幕时,就会根据鼠标位置发射一个投射物。问题是,我放了一个暂停按钮,当我按下它时,一个投射物会在游戏暂停之前发射。GuitTexture的脚本使用OnMouseDown方法,而pause按钮使用OnGui方法。请帮忙!我试着用布尔语,但没用。这两种方法似乎同时被调用。

我的游戏也有类似的问题,可能不是最好的解决方案,但对我来说效果很好

暂停按钮位于屏幕左侧的顶部,因此当触摸/单击屏幕时,我测试了与按钮相同的已单击区域,最后它仅在暂停按钮区域之外触发单击效果

如果你需要更多的按钮,它会变得更难,但这正是我所需要的,我希望它能帮助你

注意:Input.GetMouseButtonDown0适用于鼠标点击和触摸android/iphone

C:

如果您进入编辑>项目设置>脚本执行顺序,并将暂停/gui脚本置于投射脚本之上/之前,或者至少在默认时间之前,这是否解决了您的问题?
if (Input.GetMouseButtonDown(0))
    {                
        var buttonPos = new Rect(0, 0, 100, 100);
        if (!buttonPos.Contains(new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y)))
        {
            Jump();
        }
    }