来自https://www.cnblogs.com/jiuxuan/p/7453762.html

1、创建两个Image,修改第一个Image名称为 Background,把第二个Image放入 Background 下 结构如下:

2、Background 的图片设置为 Back_04,把 Background 下的 Image 设置为  Joystick_04 效果如下:

            

3、代码

 1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using UnityEngine.EventSystems;
5 using UnityEngine.UI;
6
7 public class ScrollCircle : ScrollRect
8 {
9 // 半径
10 private float _mRadius = 0f;
11
12 // 距离
13 private const float Dis = 0.5f;
14
15 protected override void Start()
16 {
17 base.Start();
18
19 // 能移动的半径 = 摇杆的宽 * Dis
20 _mRadius = content.sizeDelta.x * Dis;
21 }
22
23 public override void OnDrag(PointerEventData eventData)
24 {
25 base.OnDrag(eventData);
26
27 // 获取摇杆,根据锚点的位置。
28 var contentPosition = content.anchoredPosition;
29
30 // 判断摇杆的位置 是否大于 半径
31 if (contentPosition.magnitude > _mRadius)
32 {
33 // 设置摇杆最远的位置
34 contentPosition = contentPosition.normalized * _mRadius;
35 SetContentAnchoredPosition(contentPosition);
36 }
37
38 // 最后 v2.x/y 就跟 Input中的 Horizontal Vertical 获取的值一样
39 var v2 = content.anchoredPosition.normalized;
40 }
41 }

4、最后把 ScrollCircle 放到 Background 上,把Image拖入content中,完成。

U3D虚拟摇杆制作的更多相关文章

  1. 【转】Unity3D学习日记(一)使用UGUI制作虚拟摇杆

    http://blog.csdn.net/begonia__z/article/details/51170059 如今手机游戏玩法多种多样,尤其使用虚拟摇杆进行格斗类游戏开发或者是MMORPG成为了主 ...

  2. 【转】Unity3D学习日记(二)使用UGUI制作虚拟摇杆控制摄像机

    http://blog.csdn.net/begonia__z/article/details/51178907 前天撸了一个简单的UGUI虚拟摇杆,今天我就利用前天做的虚拟摇杆做了一个简单的摄像机控 ...

  3. unity零基础开始学习做游戏(三)鼠标输入,来个虚拟摇杆怎么样?

    -------小基原创,转载请给我一个面子 现在移动游戏越来越火,大家都拿手机平板玩游戏,没有键盘和手柄输入,所以就不得不看看虚拟摇杆怎么搞?(小基对于没有实体反馈不是很喜欢呢) 首先要清楚,鼠标操作 ...

  4. Unity3d项目入门之虚拟摇杆

    Unity本身不提供摇杆的组件,开发者可以使用牛逼的EasyTouch插件或者应用NGUI实现相关的需求,下面本文通过Unity自身的UGUI属性,实现虚拟摇杆的功能. 主参考 <Unity:使 ...

  5. 【转】简单的虚拟摇杆控制移动(NGUI)

    http://www.cnblogs.com/zhangbaochong/p/4928688.html 一.用NGUI创建虚拟摇杆贴图 先创建一个sprite作为背景叫做JoyStick 并添加一个B ...

  6. 【转】NGUI版虚拟摇杆

    http://blog.csdn.net/anyuanlzh/article/details/40107577 下面是我用nui实现的一个虚拟摇杆. 1,示图 2.代码如下,都有比较详细的注释,就不说 ...

  7. [Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动

    大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei.今天呢,我们来一起学习在Unity3D中使用EasyTouch虚拟摇杆来控制人物移动.虽然Un ...

  8. 简单的虚拟摇杆控制移动(NGUI)

    一.用NGUI创建虚拟摇杆贴图 先创建一个sprite作为背景叫做JoyStick 并添加一个BoxCollider,再创建一个sprite child作为虚拟摇杆中间的按钮,叫做button 二.通 ...

  9. Unity 虚拟摇杆的实现

    一般地,虚拟摇杆是放在UI层的. 所以先在Canvas建立一个空对象(这里被命名成MoveController),再在空对象里面放一个作为摇杆图片的Image. 然后通过覆盖重写UnityEngine ...

随机推荐

  1. SpringBoot笔记十四:消息队列

    目录 什么是消息队列 消息队列的作用 异步通信 应用解耦 流量削峰 RabbitMQ RabbitMQ流程简介 RabbitMQ的三种模式 安装RabbitMQ RabbitMQ交换器路由和队列的创建 ...

  2. C#设计模式(3)——抽象工厂模式

    1.抽象工厂模式介绍 上一篇我们了解了工厂模式,知道工厂模式可以解决简单工厂的缺陷(简单工厂添加新产品时要修改工厂类,不符合开闭原则),但是简单工厂和工厂模式都是只生产一种产品(前边的简单工厂和工厂都 ...

  3. ruby读取exce文件,使用roo---Gem

    module SEquipsHelper #设备台账,从excel文件读取信息 require 'roo' #require 'roo-xls' #读取excel文件 # SEquipsHelper. ...

  4. win7安装linux CentOS7双系统实践

    开发需求要安装linux,百度了些资料,当然仅供参考,否则入坑. 步骤一 :制作Centos 7镜像文件,这步没什么坑 1.准备U盘8G以上 下载的话网上很多,这里提供一个下载路径:​ http:// ...

  5. Python实现工厂模式

    from abc import ABCMeta, abstractmethod from enum import Enum class Person(metaclass=ABCMeta): @abst ...

  6. SQL Server进阶(十)事务和并发处理

    1 https://www.cnblogs.com/edisonchou/p/6129717.html

  7. EFCodeFirst示例

    1.定义一个基础模板类 namespace WebApplication1.Models { /// <summary> /// 可持久到数据库的领域模型的基类. /// </sum ...

  8. iOS快捷代码块

    //数据请求 /**<#封装数据请求(只适用本人)#>*/ NSString * requestUrl = [NSString stringWithFormat:@"%@%@&q ...

  9. Filter 起航 编程式配置 压缩响应 日志过滤器

    [编程式配置]可以用web.xml配置替换 @WebListenerpublic class FilterListenerConfigurator implements ServletContextL ...

  10. webservlce 的各个属性

    [WebMethod(Description = "我是可见的", MessageName = "GetAboutIntroduction")]//有这个标志的 ...