【问题标题】:Unity how to make a Visual JoyStick in UnityUnity 如何在 Unity 中制作 Visual JoyStick
【发布时间】:2016-10-04 04:04:26
【问题描述】:

我正在编写一个脚本来放置一个按钮,该按钮将检测拖动方向以移动玩家

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)
    {

    }
}

如果要将此脚本放置在按钮上,我怎样才能将按钮边界设置为矩形?

另外,如果有人有更好的通过拖动控制移动的解决方案,我会提出建议。

【问题讨论】:

  • OnGui 不应该用于新的开发。在现代统一版本中,它仍然存在用于调试目的和向后兼容性。来自the documentation“IMGUI 系统通常不用于玩家可能使用和与之交互的普通游戏内用户界面”
  • @ScottChamberlain 感谢您的提醒。你知道我如何实现拖动吗?
  • 不确定它是否涵盖拖动,但这里是现代 UI 系统的the tutorial on Button
  • 谢谢,我去看看
  • 正在尝试制作视觉操纵杆?请解释更多你正在尝试做的事情

标签: c# unity3d


【解决方案1】:

您可以使用 Unity 新的 event 回调函数(例如 OnBeginDrag OnDragOnEndDrag 函数)来实现自己的 Visual Joystick。已经为 Unity 制作了 Visual Joystick 包,因此实现您自己的包就像重新发明轮子一样。

你所要做的就是从Unity的UnityStandardAssets导入CrossPlatformInputManager包,然后使用CrossPlatformInputManager.GetAxis("Horizontal")CrossPlatformInputManager.GetAxisRaw("Horizontal")读取图像/拇指的方向。

从零开始,可以流this视频教程。

【讨论】:

  • 如果你有时间,知道如何在不点击操纵杆的情况下实现跨游戏形式的滑动/拖动吗?
【解决方案2】:

如果您想要像物理操纵杆一样真正准确和自然的移动解决方案,请查看以下资产:

Ultra Precise D-Pad Joystick

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多