摇杆是如何实现的

大家在玩手机网游的时候都注意过移动人物的前后左右键,那么它是如何实现的呢?今天博主就为大家揭开这个迷惑;
首先我们要建立两个父子关系的Image,通过Source Image分别将他们模型放进去
这里写图片描述

这里写图片描述

这里写图片描述
接下来我们通过脚本来控制摇杆;
首先我们要引入一个命名空间
Using UnityEngine.EventSystems;
继承接口
IDragHandler,IEndDragHandler
首先定义一个方向
private Vector3 direction;
因为我们的摇杆在控制时有一个限制,所以我们定义一个移动的最大距离;
public float maxDistence;
public void OnDrag(PointerEventData eventData)
{
transform.position=Input.MousePosition;
if(Vector3.Distance(Vector3.zero,transform.localPosition)>maxDistence)
{
direction=transform.localPosition-Vector3.zero;
//方向等于当前位置减去中心座标
transform.localposition=direction.normalized*maxDistence;
//位置等于在该方向的最大距离

  }

}
public void OnEndDrag(pointEventData eventData)
{
transform.localPosition=Vector3.zero;
//当拖拽松开时,位置回归中心点。
}
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章