UGUI简易摇杆
实现
- 直接使用系统自带圆形控件图标
- 编写脚本, 实现UGUI拖拽事件
- 将多拽范围限定于给定半径和圆心的圆内
- 计算出等同于Input.GetAxis()的值,直接控制被控制物体
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems; public class MyJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IEndDragHandler
{
public float Radius = 100f;
private Vector2 center;
private RectTransform rectTransform;
// Use this for initialization
void Start()
{
rectTransform = GetComponent<RectTransform>();
center = rectTransform.position;
} public void OnDrag(PointerEventData eventData)
{
Vector2 vPos = eventData.position;
var distance = Vector2.Distance(vPos, center);
if (distance > Radius)
{
vPos = (vPos - center).normalized * Radius + center;
}
rectTransform.position = new Vector3(vPos.x, vPos.y, ); // if (TTMove)
// {
// var npos = (vPos - center) / Radius;
// TTMove.forwardInput = npos.y;
// TTMove.turnInput = npos.x;
// }
} public void OnPointerUp(PointerEventData eventData)
{
rectTransform.position = new Vector3(center.x, center.y, );
// if (TTMove)
// TTMove.forwardInput = TTMove.turnInput = 0;
} public void OnEndDrag(PointerEventData eventData)
{
rectTransform.position = new Vector3(center.x, center.y, );
// if (TTMove)
// TTMove.forwardInput = TTMove.turnInput = 0;
}
}
把脚本挂到

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
UGUI简易摇杆的更多相关文章
- unity使用UGUI创建摇杆
1.现在unity做一个项目,各种插件各种包,于是项目资源就无限变大了,其实一些简单的功能可以自己写,这里就是试着使用UGUI编写一个摇杆功能 2.脚本如下: using UnityEngine; u ...
- ugui自制摇杆。
珍爱生命,远离插件. 以上8个字,好好理解. 反正我是这么觉得. 我说的是unity,不是魔兽世界. 总有一天,我会一句一句写出属于自己的东西. 可以开始主题了. 如图所示,建立一个画 ...
- UGUI实现摇杆(模仿太极熊猫)
核心代码: using UnityEngine; using System.Collections; using UnityEngine.UI; public delegate void Joysti ...
- UGUI实现摇杆
效果图
- 【转】ugui自制摇杆
http://www.cnblogs.com/duyushuang/p/4457691.html 珍爱生命,远离插件. 以上8个字,好好理解. 反正我是这么觉得. 我说的是unity,不是魔兽世界. ...
- [Unity] UGUI研究院之游戏摇杆
最近在做Unity基于UGUI的摇杆,发现了一种非常简单并且巧妙的方法,原文在这里, 不过要FQ!!http://godstamps.blogspot.tw/2015/07/unity-ugui-sc ...
- 【转】Unity3D学习日记(二)使用UGUI制作虚拟摇杆控制摄像机
http://blog.csdn.net/begonia__z/article/details/51178907 前天撸了一个简单的UGUI虚拟摇杆,今天我就利用前天做的虚拟摇杆做了一个简单的摄像机控 ...
- 【转】Unity3D学习日记(一)使用UGUI制作虚拟摇杆
http://blog.csdn.net/begonia__z/article/details/51170059 如今手机游戏玩法多种多样,尤其使用虚拟摇杆进行格斗类游戏开发或者是MMORPG成为了主 ...
- 【转】UGUI实现unity摇杆
http://blog.csdn.net/onafioo/article/details/46403801 http://www.winig.cc/archives/348 好久没有写文章了,最近在做 ...
随机推荐
- JDK(六)JDK1.8源码分析【集合】LinkedHashMap
本文转载自joemsu,原文连接 [JDK1.8]JDK1.8集合源码阅读——LinkedHashMap LinkedHashMap的数据结构 可以从上图中看到,LinkedHashMap数据结构相比 ...
- Python中获取异常(try Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置. 这里获取异常(Exception)信息采用try...except...程序结构.如下所示: try: ... exce ...
- nRF5 SDK for Mesh( 七 ) BLE MESH 的 架构(rchitecture)
The mesh architecture The mesh stack consists of a number of subsystems that are interfaced throug ...
- ubuntu下USB口插入USB转TTL查看串口号
首先先要获取权限 sudo su 然后 cd /devls ls可以列出所有的串口号(确保此时USB转TTL已经插在电脑上了) 然后拔掉USB转TTL 在ls一下列出所有的串口设备 对比可以发现,插上 ...
- 《关于安卓和IOS开发》
28年前有人发明www microsoft技术开发人员lot 看论文可以看中国知网 微软亚洲研究院 WWDC苹果开发者大会上,苹果都会发布一些新的公司发展出的新的产品的新技术.iOS开发,用到的语言有 ...
- vue父子组件之间的传值
引入组件 父组件 <div> <form-edit></form-edit> </div> import FormEdit from "路径& ...
- 读取本地json文件另一种方式
function getScenemapData(){ $.ajax({ url: "/js/currency.json", type: "GET" ...
- shell习题第3题:统计内存大小
[题目要求] 写一个脚本计算一下linux系统所有进程占用内存的大小的和 [核心要点] ps命令用法 for循环 加法运算 [脚本] #!/bin/bash for n in `ps aux | gr ...
- Linux下设置共享目录
Linux系统的文件或目录的共享功能是非常强大,而且是非常灵活的,其对权限的控制可以做到非常的细致,当然如果你是通过命令行方式进行设置的 话,那么对于刚接触linux系统的用户来说将是一件十分头痛的事 ...
- 记录一下自己用jQuery写的轮播图
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...