【Unity】UGUI超级简单的摇杆制作,摇杆控制物体移动!!!!!!!!!!!!!
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-01 23:35 JoyStick
目录 0 2018-12-01 15:13 JoyStick.idea
目录 0 2018-12-01 15:17 JoyStick.idea.idea.JoyStic
目录 0 2018-12-02 01:57 JoyStick.idea.idea.JoyStic.idea
文件 2407 2018-12-01 21:57 JoyStick.idea.idea.JoyStic.ideacontentModel.xml
文件 210 2018-12-01 15:17 JoyStick.idea.idea.JoyStic.ideaindexLayout.xml
文件 309 2018-12-01 15:17 JoyStick.idea.idea.JoyStic.ideamodules.xml
文件 21891 2018-12-02 01:57 JoyStick.idea.idea.JoyStic.ideaworkspace.xml
文件 256 2018-12-01 15:17 JoyStick.idea.idea.JoyStic
iderModule.iml
文件 20647 2018-12-01 23:35 JoyStickAssembly-CSharp.csproj
目录 0 2018-12-02 01:59 JoyStickAssets
文件 2026 2018-12-01 21:54 JoyStickAssetsHead.mat
文件 188 2018-12-01 20:26 JoyStickAssetsHead.mat.meta
文件 4659 2018-12-02 01:57 JoyStickAssetsJoyStick.cs
文件 243 2018-12-01 15:12 JoyStickAssetsJoyStick.cs.meta
文件 2022 2018-12-01 21:54 JoyStickAssetsMat.mat
文件 188 2018-12-01 20:20 JoyStickAssetsMat.mat.meta
目录 0 2018-12-01 15:31 JoyStickAssetsPlugins
目录 0 2018-12-01 15:31 JoyStickAssetsPluginsEditor
目录 0 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrains
文件 1342464 2018-09-13 16:34 JoyStickAssetsPluginsEditorJetBrainsJetBrains.Rider.Unity.Editor.Plugin.Repacked.dll
文件 569 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrainsJetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta
文件 172 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrains.meta
文件 172 2018-12-01 15:31 JoyStickAssetsPluginsEditor.meta
文件 172 2018-12-01 15:31 JoyStickAssetsPlugins.meta
目录 0 2018-12-02 01:57 JoyStickAssetsScenes
文件 26877 2018-12-02 01:57 JoyStickAssetsScenesSampleScene.unity
文件 155 2018-07-25 02:00 JoyStickAssetsScenesSampleScene.unity.meta
文件 172 2018-07-25 02:00 JoyStickAssetsScenes.meta
文件 172 2018-12-01 21:54 JoyStickAssetsUnityChan.meta
文件 28799 2017-10-10 20:37 JoyStickAssets摇杆底板.png
............此处省略1838个文件信息
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
///
/// time:2018/12/2
/// author:King.Sun
/// description:摇杆控制器
///
public class JoyStick : MonoBehaviour
{
///
/// 摇杆背景
///
private Transform _joyBg;
///
/// 遥感中心
///
private Transform _joyCenter;
///
/// 摇杆半径
///
private float _radius;
///
/// 移动中心
///
private Vector2 _moveCenter;
///
/// 鼠标到终点的向量
///
private Vector2 _mouseToCenterVect;
///
/// 鼠标到中心点的距离
///
private float _mouseToCenterDistance;
///
/// 水平获取值
///
private float _hor;
///
/// 垂直获取值
///
private float _ver;
///
/// 旋转角度
///
private float _rotAngle;
///
/// 主角
///
private Transform _player;
///
/// 目标朝向
///
private Vector3 _forwardTarget;
// Use this for initialization
void Start ()
{
_joyBg = Gameobject.Find(“Canvas“).transform.Find(“JoyBg“);
_joyCenter = Gameobject.Find(“Canvas“).transform.Find(“JoyBg/JoyCenter“);
_player = Gameobject.Find(“Player“).transform;
_radius = 100;
}
private void Update()
{
//只有在水平或者垂直值大于0的情况下,主角才移动或旋转
if (Math.Abs(_hor) > 0||Math.Abs(_ver) > 0)
{
//Mathf.Clamp(_mouseToCenterDistance/10001):根据摇杆中心的移动距离太判断速度
//new Vector3(000.1f*Mathf.Clamp(_mouseToCenterDistance/10001)):在Z轴方向上移动Mathf.Clamp(_mouseToCenterDistance/10001)的距离
//不停地在Z轴方向上移动Mathf.Clamp(_mouseToCenterDistance/10001)的距离
_player.position += _player.TransformDirection(new Vector3(000.1f*Mathf.Clamp(_mouseToCenterDistance/10001)));
//根据摇杆的旋转设置主角的朝向
_player.forward = _forwardTarget;
}
}
///
/// 开始拖动
///
public void ondragBegain()
{
//移动中心点赋值
_moveCenter = Input.mousePosition;
//显示摇杆
_joyBg.gameobject.SetActive(true);
//摇杆背景位置修正到点击位置
_joyBg.position = _moveCenter;
//摇杆中心位置修正到点击位置
_joyCenter.position = _moveCenter;
}
///
/// 正在拖动
///
public void ondragMove()
{
//中心店到触摸点的向量赋值
_mouseToCenterVect = (Vector2)Input.mousePosition - _moveCenter;
//中心店到触摸点的距离计算
_mouseToCenterDistance = _mouseToCenterVect.magnitude;
//根据距离来判断摇杆中心的位置
if (_mouseToCenterDistance < _radius)
{
//若是距离小于最大半径,这里取向量的归一值,就是模为1的向量,乘上中心到触摸点的距离,这个就是摇杆中心应该移动的方向和距离,并且移动是在移动中心的基础上,所以加上移动中心的坐标
_joyCenter.position = _mouseToCenterVect.normalized * _mouseToCenterDistance + _moveCenter;
}
else
{
//同上,不过就是限定了移动的最大距离
_joyCenter.position = _mouseToCenterVect.normalized * _radius + _moveCenter;
}
//摇杆中心的X - 移动中心的x就是水平的变化值,这里 /100 控制_hor在(-1,1)之间
_hor = (_joyCenter.position.x - _moveCenter.x)/100;
//摇杆中心的Y - 移动中心的Y就是垂直的变化值,
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-01 23:35 JoyStick
目录 0 2018-12-01 15:13 JoyStick.idea
目录 0 2018-12-01 15:17 JoyStick.idea.idea.JoyStic
目录 0 2018-12-02 01:57 JoyStick.idea.idea.JoyStic.idea
文件 2407 2018-12-01 21:57 JoyStick.idea.idea.JoyStic.ideacontentModel.xm
文件 210 2018-12-01 15:17 JoyStick.idea.idea.JoyStic.ideaindexLayout.xm
文件 309 2018-12-01 15:17 JoyStick.idea.idea.JoyStic.ideamodules.xm
文件 21891 2018-12-02 01:57 JoyStick.idea.idea.JoyStic.ideaworkspace.xm
文件 256 2018-12-01 15:17 JoyStick.idea.idea.JoyStic
iderModule.iml
文件 20647 2018-12-01 23:35 JoyStickAssembly-CSharp.csproj
目录 0 2018-12-02 01:59 JoyStickAssets
文件 2026 2018-12-01 21:54 JoyStickAssetsHead.mat
文件 188 2018-12-01 20:26 JoyStickAssetsHead.mat.me
文件 4659 2018-12-02 01:57 JoyStickAssetsJoyStick.cs
文件 243 2018-12-01 15:12 JoyStickAssetsJoyStick.cs.me
文件 2022 2018-12-01 21:54 JoyStickAssetsMat.mat
文件 188 2018-12-01 20:20 JoyStickAssetsMat.mat.me
目录 0 2018-12-01 15:31 JoyStickAssetsPlugins
目录 0 2018-12-01 15:31 JoyStickAssetsPluginsEditor
目录 0 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrains
文件 1342464 2018-09-13 16:34 JoyStickAssetsPluginsEditorJetBrainsJetBrains.Rider.Unity.Editor.Plugin.Repacked.dll
文件 569 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrainsJetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.me
文件 172 2018-12-01 15:31 JoyStickAssetsPluginsEditorJetBrains.me
文件 172 2018-12-01 15:31 JoyStickAssetsPluginsEditor.me
文件 172 2018-12-01 15:31 JoyStickAssetsPlugins.me
目录 0 2018-12-02 01:57 JoyStickAssetsScenes
文件 26877 2018-12-02 01:57 JoyStickAssetsScenesSampleScene.unity
文件 155 2018-07-25 02:00 JoyStickAssetsScenesSampleScene.unity.me
文件 172 2018-07-25 02:00 JoyStickAssetsScenes.me
文件 172 2018-12-01 21:54 JoyStickAssetsUnityChan.me
文件 28799 2017-10-10 20:37 JoyStickAssets摇杆底板.png
............此处省略1838个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)