C# Unity如何在Unity中制作可视操纵杆

C# Unity如何在Unity中制作可视操纵杆,c#,unity3d,C#,Unity3d,我正在编写一个脚本,在按钮上加上一个按钮,该按钮将检测移动玩家的拖动方向 void OnGUI() { if (buttonRect.Contains(Event.current.mousePosition)) { if (Event.current.type == EventType.MouseDown) { buttonPressed = true; } if (Event.current

我正在编写一个脚本,在按钮上加上一个按钮,该按钮将检测移动玩家的拖动方向

void OnGUI()
{
    if (buttonRect.Contains(Event.current.mousePosition))
    {
        if (Event.current.type == EventType.MouseDown)
        {
            buttonPressed = true;
        }
        if (Event.current.type == EventType.MouseUp)
        {
            buttonPressed = false;
        }
    }
    if (buttonPressed && Event.current.type == EventType.MouseDrag)
    {

    }
}
如果将此脚本放置在按钮上,如何将按钮边界设置为矩形


此外,如果有人有更好的通过拖动控制移动的解决方案,我愿意征求建议。

您可以使用Unity新的回调函数实现自己的可视操纵杆,如
OnBeginDrag
OnDrag
oneddrag
函数。有一个已经为Unity制作的可视化操纵杆包,所以实现您自己的就像重新发明轮子一样

您只需从Unity导入
CrossPlatformInputManager
包,然后使用
CrossPlatformInputManager.GetAxis(“水平”)
CrossPlatformInputManager.GetAxisRaw(“水平”)
读取图像/拇指的方向


若要从头开始制作,可以使用流视频教程。

OnGui不应用于新开发。在unity的现代版本中,它仍然存在只是为了调试和向后兼容。From:“IMGUI系统通常不用于玩家可能使用并与之交互的正常游戏内用户界面”@ScottChamberlain感谢提醒。你知道我如何实现拖动吗?不知道它是否包括拖动,但这是现代用户界面系统。谢谢,我会检查这个。你正在尝试制作一个可视化操纵杆吗?请解释更多你想做的事情如果你有时间,你知道如何在不点击操纵杆的情况下实现跨游戏窗体的滑动/拖动吗?