Unity手游之路<五>虚拟摇杆之Unity内置插件实现
来源:互联网 发布:淘宝哪里改收货地址 编辑:程序博客网 时间:2024/05/01 19:03
手机游戏,尤其是mmo类的有,都少不了虚拟游戏摇杆。今天我们来学习如何利用Unity3d自带的摇杆组件,实现利用摇杆来控制角色的移动。
今天所用到的例子参考了网上的一个教程(http://www.unitymanual.com/thread-5189-1-1.html),原文用javascript实现了。我这里用c#来实现
(本文可以随意分享,请注明出处http://blog.csdn.net/janeky/article/details/17326711,谢谢!)
- 具体步骤
2.导入Standard Assets(Mobile)组件,里面包含了Joystick组件
3.创建一个Gui Texture,命名为Joystick。设置它的材料Texture 为 Joystick Thumb
设置它的Pixel Inset .x,y Width,Hight
4.为Joystick添加脚本Joystick.cs
5.创建一个地形。不会的同学,可以直接引用到源码中的
6.将角色控制器中的Bip001加到Player上,初始化状态为idle
7.为Main Camera 添加 Smooth Follow脚本(角色控制器脚本中包含),使得摄像机可以跟随人物移动
8.为Main Camera添加自定义脚本 PlayerController.cs脚本
- using UnityEngine;
- using System.Collections;
- public class PlayerController : MonoBehaviour
- {
- //角色
- public GameObject player;
- //摇杆
- public Joystick joystick;
- void Update()
- {
- //摇杆没有被触发
- if (joystick.tapCount <= 0)
- {
- return;
- }
- //获取摇杆偏移
- var joyPositionX = joystick.position.x;
- var joyPositionY = joystick.position.y;
- if (joyPositionY != 0 || joyPositionX != 0)
- {
- //设置角色的朝向(朝向当前坐标+摇杆偏移量)
- player.transform.LookAt(new Vector3(player.transform.position.x + joyPositionX, player.transform.position.y, player.transform.position.z + joyPositionY));
- //移动玩家的位置(按朝向位置移动)
- player.transform.Translate(Vector3.forward * Time.deltaTime * 5);
- //播放奔跑动画
- player.animation.Play("run");
- }
- else
- {
- //播放待机动画
- player.animation.Play("idle");
- }
- }
- }
- 最终的效果图:
Joystick.cs
代码比较多,就不详细列出。
主要思路:记录触摸的位置,记录相关的偏移量。与此相关联的是GUI Texture组件。
- 总结
- 源码地址
http://pan.baidu.com/s/1GMnyQ
0 0
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- Unity 虚拟摇杆之Unity内置插件实现
- unity 手游虚拟摇杆代码参考
- Unity实现虚拟摇杆
- unity手游摇杆的实现(EasyTouch)
- Unity手游之路<六>游戏摇杆之Easy Touch 3教程
- Unity手游之路<六>游戏摇杆之Easy Touch 3教程
- Unity手游之路<六>游戏摇杆之Easy Touch 3教程
- Unity手游之路<六>游戏摇杆之Easy Touch 3教程
- Unity手游之路<六>游戏摇杆之Easy Touch 3教程
- UGUI实现Unity虚拟摇杆
- unity虚拟摇杆的实现
- unity学习之摇杆
- Unity Asset(3)虚拟摇杆插件 EasyTouch
- Unity虚拟摇杆
- CUDA程序编译过程中产生警告的解决方法
- JNI NDK Cygwin 从无到有
- C++容器中 size(), capacity, reserve() ,resize() 函数
- SQL 存储过程 分页
- kafka 0.8 pom.xml
- Unity手游之路<五>虚拟摇杆之Unity内置插件实现
- 浅谈DataTable、DataSet与DataView,DataGridView,DataSource之间的联系
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 神奇华为3c手机, 出现安装未成功问题。
- 姚博文 loadrunner linux rstatd 性能监控
- 数据库索引的作用和优点缺点
- ExtJs 4分页(pagingtoolbar)带参数(条件)查询解决方法
- 笔记本如何设置wifi
- linux最常用的几个命令收集