UGUI实现Joystick
来源:互联网 发布:天敏网络机顶盒 编辑:程序博客网 时间:2024/06/02 08:43
好激动,终于要写自己的博客了。。。算了 ,确实没啥想说的 直接看代码吧,挺简单的,但是就是不会。。。看了半天别人的代码才懂。。。
using System.Collections.Generic;using System.Text;using System;using UnityEngine.UI;using UnityEngine.EventSystems;[ExecuteInEditMode]public class JoystickControl : MonoBehaviour{ public delegate void JoystickEventHandler(JoystickControl joystick);/// <summary>/// Pretty self-explanatory, Gets the AxisValues axis value between -1 & 1.../// </summary>public static Vector2 CurrentAxisValues { get;private set; }/// <summary>/// The radius./// </summary>private int radius ;/// <summary>/// joystick background/// </summary>public Image JoystickBG;public Image JoystickFG;void Awake(){ RegisetEvent();} void Start() { <pre name="code" class="csharp"><span style="white-space:pre"></span>radius <span style="font-family: Arial, Helvetica, sans-serif;">= (int)JoystickBG.rectTransform.rect.height / 2;</span>} private void RegisetEvent() {
<span style="white-space:pre"></span>//这里是参考Mono的事件,有兴趣的可以去看一下 EventTriggerListener.Get(JoystickBG.gameObject).onDown += OnMouseDownBG; EventTriggerListener.Get(JoystickBG.gameObject).onUp += OnMouseUpBG; EventTriggerListener.Get(JoystickBG.gameObject).onDrag += OnMouseDragBG; } private void OnMouseDownBG( PointerEventData data) { CalculateJoystickAxis(data); } private void OnMouseUpBG(PointerEventData go) { CurrentAxisValues=Vector2.zero; JoystickFG.transform.localPosition = Vector3.zero; } private void OnMouseDragBG(PointerEventData data) { CalculateJoystickAxis(data ); }/// <summary>/// 计算JoystickAxis/// </summary>/// <returns></returns> void CalculateJoystickAxis(PointerEventData data){ Vector3 pos; if( RectTransformUtility.ScreenPointToWorldPointInRectangle(JoystickFG.rectTransform, data.position, data.pressEventCamera, out pos)); JoystickFG.transform.position = pos; Vector3 local = JoystickFG.transform.localPosition; if (local.magnitude > radius){ JoystickFG.transform.localPosition = local.normalized * radius;} CurrentAxisValues = new Vector2(local.x / radius, local.y / radius);}}
0 0
- UGUI实现Joystick
- Ugui 实现简易版的Joystick
- [Unity3d]基于UGUI写的Joystick
- STM32下实现joystick
- ios joystick 虚拟摇杆实现 ( 非 Cocos2d )
- Unity Joystick 虚拟摇杆的实现
- 介绍一种五个键键盘的实现方法(Joystick)
- cocos2d-x遥感控制角色移动简单实现之JoyStick
- Unity3D 双摇杆 c# JoyStick 实现自己的双摇杆
- c8051f320实现HID类(usb keyboard, usb mouse, usb joystick)
- UGUI实现unity摇杆
- UGUI 文本下划线实现
- UGUI实现操纵摇杆
- UGUI 实现无限滚动
- UGUI实现页面滑动
- UGUI实现帧动画
- UGUI 文本下划线实现
- UGUI 实现引导
- jFreeChart利用CategoryDatase,ChartFactory.createLineChart生成的折线图
- iOS反射机制,获取方法名和描述属性
- 摄像机和镜头的基础知识
- Qt数据库之数据库连接池
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
- UGUI实现Joystick
- ASP.NET MVC Model Binding(模型绑定)
- C#学习笔记——结构与类
- Swift开发之自动布局
- 第二章
- process.waitFor() 返回值含义
- 模块(module)方式创建maven工程
- Qt数据库之数据库访问工具 DBUtil
- hadoop集群搭建文章