我的Unity(10)一点一滴 利用UI制作摇杆控制物体移动
2016-12-14 22:39
876 查看
using UnityEngine; using System.Collections; using UnityEngine.Events; //定义空间 using UnityEngine.EventSystems; //实现接口和方法 public class JoyStrick : MonoBehaviour ,IBeginDragHandler,IDragHandler,IEndDragHandler { public void OnEndDrag (PointerEventData eventData) { //让图片回到原始的位置。 transform.position = m_StartJoyStrickpos; isDrag = false; } public void OnDrag (PointerEventData eventData) { //tuozhia shi ,开启主角移动 isDrag = true; //图片的范围 不能出去 //不能写成 tranform.position-m_StartJoyStrickpos; Vector3 JoyDir = Input.mousePosition - m_StartJoyStrickpos; //得到我摇杆的方向后,主角的移动方向 //m_PlayerDir = JoyDir.normalized; //摇杆在背景图片范围内的话 //注意,注意距离,是鼠标的位置,如果是image的话,image是会闪动的, if (Vector3.Distance (m_StartJoyStrickpos, Input.mousePosition) <= 20f) { transform.position = Input.mousePosition; } else { //摇杆出去的问题 需要一个方向 transform.position = m_StartJoyStrickpos + JoyDir.normalized * 30f; } //限制主角的Y方向 //得到方向向量指向鼠标, m_PlayerDir = transform.position - m_StartJoyStrickpos; //注意按钮的XY可以对应到三维中的XZ, m_PlayerDir = new Vector3 (m_PlayerDir.x, 0f, m_PlayerDir.y); } public void OnBeginDrag (PointerEventData eventData) { //开始拖拽实 ,先记录遥感的其实位置 m_StartJoyStrickpos = transform.position; } public Transform m_Player; //速度的方向 Vector3 m_PlayerDir; //初始的图片位置。 Vector3 m_StartJoyStr 952a ickpos; //判断是否拖动, bool isDrag = false; void Update () { //如果拖动 给刚体添加一个速度。 //需要设置一个bool 值,不然松手后物体还是会移动, if (isDrag) { //主角的移动方向 m_Player.GetComponent<Rigidbody> ().velocity = m_PlayerDir * 5f * Time.deltaTime; } } }
相关文章推荐
- Unity摇杆控制物体移动c#脚本
- Unity简单利用屏幕坐标转换实现鼠标控制物体移动
- Unity学习2 鼠标点击控制物体移动
- Unity编程回忆录之控制物体移动
- 面向组件编程之Unity 7.怎样脚本控制物体旋转和移动 关键字:画圆&&Translate/transform.Translate,transform.Rotate
- 我的Unity(5)一点一滴 利用贴图制作弹痕
- Unity5.5+easytouch5双摇杆控制角色移动及挂上Animator的方法
- unity 控制物体移动和旋转
- unity 点击按钮控制物体移动
- Unity 3D 控制物体上下左右均匀移动脚本
- Unity 3D 控制物体前后左右均匀移动脚本
- Unity用鼠标控制物体移动
- Unity 碰撞检测,触发检测,方向键控制物体移动
- Unity用键盘控制物体左右旋转前后移动的c#脚本
- Unity ——UGUI 通过摇杆控制角色移动
- 通过滑动手势控制摇杆移动并且通过移动的速度控制能量条的增长 Unity
- unity中结合oculus制作VR场景控制相机的移动的三种方式
- 我的Unity(2)一点一滴 鼠标拖动物体,物体在三维中移动到该位置。
- Unity 控制物体移动 旋转 缩放
- unity 实现键盘控制物体移动和转向