Unity手游输入笔记
虚拟摇杆
- 虚拟摇杆生效的范围通常是左半屏,放一个左半屏的透明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; }