Unity 如何在 Unity 中制作 Visual JoyStick

Posted

技术标签:

【中文标题】Unity 如何在 Unity 中制作 Visual JoyStick【英文标题】:Unity how to make a Visual JoyStick in Unity 【发布时间】: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。 谢谢,我去看看 正在尝试制作视觉操纵杆?请解释更多你正在尝试做的事情 【参考方案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。

以上是关于Unity 如何在 Unity 中制作 Visual JoyStick的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Unity 2D 中制作软体弹跳器?

unity如何制作恶魔城小地图

如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?

ARCore+Unity3D:如何制作面向北方的场景?

我如何在 Unity 中制作随着速度跳跃而移动的东西?

如何在 Unity3D 中制作平滑的十字准线?