小编这次要给大家分享的是Unity如何实现简单虚拟摇杆,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

最近一直在倒腾用UGUI做虚拟摇杆,网上普遍的的做法就是使用以下的代码,但是这个有些注意事项,第一点就是Canvas的Render Mode必须是Screen Space Overlay,第二点就是挂载这个脚本的锚点的x,y必须是0.5,如图下:

using UnityEngine;
using UnityEngine.EventSystems;
public class JoyStick : MonoBehaviour, IDragHandler, IEndDragHandler
{
Transform point;
Vector3 startPos;//开始位置
Vector3 dir;//方向
float radius = 0;//需要移动的半径
void Start()
{
point = transform.GetChild(0);
radius = (transform as RectTransform).sizeDelta.x * 0.5f;
startPos = point.position;
}
public void OnDrag(PointerEventData eventData)
{
point.position = eventData.position;
dir = (point.position - startPos).normalized;
if (Vector3.SqrMagnitude(point.position - startPos) > radius * radius)
point.position = startPos + dir * radius;
}
public void OnEndDrag(PointerEventData eventData)
{
point.localPosition = Vector3.zero;
}
}另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。