Unity Joystick 虚拟摇杆的实现
来源:互联网 发布:java实现国际化 编辑:程序博客网 时间:2024/05/16 15:18
直接调用VirtualJoystick.cs中的公有horizontal 和 Vertical方法来获得原点中心按钮距离圆心的位置。
教学视频看本链接:
制作虚拟摇杆的视频(需要科学上网)
先贴代码:
VirtualJoystick.cs
using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.EventSystems;public class VirtualJoystick : MonoBehaviour , IDragHandler, IPointerDownHandler, IPointerUpHandler{ private Image bgImg; private Image joystickImg; private Vector3 inputVector; private void Start() { bgImg = GetComponent<Image>(); joystickImg = transform.GetChild(0).GetComponent<Image>(); //Debug.Log(bgImg); //Debug.Log(joystickImg); } public virtual void OnPointerDown(PointerEventData ped) { OnDrag(ped); } public virtual void OnPointerUp(PointerEventData ped) { inputVector = Vector3.zero; joystickImg.rectTransform.anchoredPosition = inputVector; } public virtual void OnDrag(PointerEventData ped) { Vector2 pos; if (RectTransformUtility.ScreenPointToLocalPointInRectangle(bgImg.rectTransform , ped.position , ped.pressEventCamera , out pos )) { pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x); pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y); pos.x = pos.x * 2 + 1; pos.y = pos.y * 2 - 1; inputVector = new Vector3(pos.x, 0, pos.y); inputVector = (inputVector.magnitude > 1.0f) ? inputVector.normalized : inputVector; joystickImg.rectTransform.anchoredPosition = new Vector3(inputVector.x * (bgImg.rectTransform.sizeDelta.x / 3), inputVector.z * (bgImg.rectTransform.sizeDelta.y / 3), 0); } } public float Horizontal() { if (inputVector.x != 0) { return inputVector.x; } else{ return Input.GetAxis("Horizontal"); } } public float Vertical() { if (inputVector.z != 0) { return inputVector.z; } else { return Input.GetAxis("Vertical"); } }}
阅读全文
0 0
- Unity Joystick 虚拟摇杆的实现
- unity虚拟摇杆控制 Virtual Joystick
- unity虚拟摇杆的实现
- ios joystick 虚拟摇杆实现 ( 非 Cocos2d )
- Unity实现虚拟摇杆
- Unity中虚拟摇杆的简单实现
- Unity3D 双摇杆 c# JoyStick 实现自己的双摇杆
- NGUI版虚拟摇杆joystick
- Cocos Creator Joystick虚拟摇杆
- UGUI实现Unity虚拟摇杆
- cocos2d-x的初步学习十二之虚拟摇杆Joystick
- cocos2d-x的初步学习十二之虚拟摇杆Joystick
- UGUI 虚拟摇杆的实现
- Unity虚拟摇杆
- Unity 虚拟摇杆之Unity内置插件实现
- Cocos2d-X 摇杆的使用(Joystick)
- 基于Unity3D的虚拟摇杆的实现
- android虚拟手柄摇杆的实现
- 《统计与真理》
- java学习整理20170804
- tomcat的maxThreads、acceptCount(最大线程数、最大排队数)
- Python copy与deepcopy的区别
- 启动mysql提示Starting MySQL... ERROR! 解决方法
- Unity Joystick 虚拟摇杆的实现
- Java动态代理(主要是对六个参数的理解)
- select源码剖析
- Audio 环形buffer
- 时隔好几个好几天,又到js
- 插入排序(内附代码)
- 使用xshell链接Linux
- SSM(spring +springmvc +mybatis)框架搭建
- day21桶排序一个无序数组+求一个无序数组中的中位数