http://www.cnblogs.com/duyushuang/p/4457691.html

珍爱生命,远离插件。

以上8个字,好好理解。

反正我是这么觉得。

我说的是unity,不是魔兽世界。

总有一天,我会一句一句写出属于自己的东西。

可以开始主题了。

       

如图所示,建立一个画布,添加两个image即可(注意父子关系,父亲为摇杆外面的那个圆圈),然后调整位置到左下角,调节锚点,选左下角那个。

接下来编辑脚本

using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;

public class Joystick : MonoBehaviour, IBeginDragHandler, IDragHandler ,IEndDragHandler{

public Vector3 normalCenter;
    public static float joystickH;
    public static float joystickV;

private bool isDrag;
    private Vector3 startPos;
    private Vector3 dragPos;

void Awake()
    {
        isDrag = false;
        startPos = transform.localPosition;
    }

void Update()
    {
        if(isDrag)
        {
            float distance = Vector3.Distance(dragPos, normalCenter);
            Vector3 dirNormal = dragPos - normalCenter;
            if(distance > 45)
            {
                transform.localPosition = dirNormal.normalized * 50;
            }
            else
            {
                transform.localPosition = dirNormal;
            }
            joystickH = dirNormal.x / 1000;
            joystickV = dirNormal.y / 1000;
        }
        else
        {
            transform.localPosition = startPos;
            joystickH = 0;
            joystickV = 0;
        }
    }

public void OnBeginDrag(PointerEventData eventData)
    {
        isDrag = true;
    }

public void OnDrag(PointerEventData eventData)
    {
        dragPos = eventData.position;
    }

public void OnEndDrag(PointerEventData eventData)
    {
        isDrag = false;
    }
}

OK,回到unity运行程序,是不是可以动了呢。

让别的物体动的话,只需在控制移动的脚本里调用 joystickH  joystickV 即可,对应水平和垂直方向。

最新文章

  1. What is SPI?
  2. skynet的协程
  3. http压力测试
  4. hunnu 小明的烦恼——找字符串
  5. PC和单片机通过MODBUS RTU通信
  6. Centos6.8下安装oracle_11gr2版主要过程
  7. [bzoj4866] [Ynoi2017]由乃的商场之旅
  8. 解决在C#(.net)按字节数截取字符串最后出现乱码的问题
  9. TZOJ 2392 Bounding box(正n边形三点求最小矩形覆盖面积)
  10. NVM 安装 nodejs
  11. Caffe和py-faster-rcnn日常使用备忘录
  12. 记Asp.Net Core Swagger 使用 并带域接口处理
  13. 无效GRANT语句导致主从同步断开
  14. ubuntu16.04安装tensorflow-gpu和cuda8.0加速训练
  15. 操作系统Day1地址空间与地址生成
  16. 【云计算】使用nsenter进入Docker容器进行调试
  17. java.net.MalformedURLException: Protocol not found:
  18. 怎样使用libcurl获取隐藏了文件后缀的url网络文件类型
  19. POJ - 2187:Beauty Contest (最简单的旋转卡壳,求最远距离)
  20. 使用nginx搭建https服务器(转)

热门文章

  1. 【洛谷4424】[HNOI/AHOI2018] 寻宝游戏(位运算思维题)
  2. 分布式版本控制系统git
  3. CUDA常见问题与解答
  4. IBM MQ安装
  5. vue项目各页面间的传值
  6. linux系统监控工具glances
  7. python之2.x与3.x区别(仅限于基础)
  8. 使用Navicat连接阿里云ECS服务器上的MySQL数据库
  9. JZOJ 1266. 玉米田
  10. Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库