虚拟摇杆
- 虚拟摇杆生效的范围通常是左半屏,放一个左半屏的透明image,挂载脚本;
- 有摇杆座、摇杆头2个图标;
- 脚本继承IPointerDown、IPointerUp、IPointerDrag;
- 按下时把摇杆座放到按下位置,使用
public void OnPointerDown(PointEventData eventData){ Vector2 pos; RectTransformUtility.ScreenPointToLocalPointInRectangle( transform as RectTransform, eventData.position, eventData.pressEventCamera, out pos); joystick.transform.localPosition=pos; }
-
拖动时把摇杆头移到触摸点,但不超过摇杆座范围
float joystickRadius; public void OnDrag(PointEventData eventData){ Vector2 pos; RectTransformUtility.ScreenPointToLocalPointInRectangle( joystick.transform as RectTransform, eventData.position, eventData.pressEventCamera, out pos); if(pos.magnitude>joystickRadius){ pos=pos.normalized*joystickRadius; } joystickHead.transform.localPosition=pos; }
-
触摸离开时把摇杆归位或消失
public void OnPointerUp(PointEventData eventData){ joystick.transform.localPosition=initPos; joystickHead.localPosition=Vector3.zero; }