Unity手游之路<五>虚拟摇杆之Unity内置插件实现

来源:互联网 发布:perl 读取json文件 编辑:程序博客网 时间:2024/05/01 12:42

手机游戏,尤其是mmo类的有,都少不了虚拟游戏摇杆。今天我们来学习如何利用Unity3d自带的摇杆组件,实现利用摇杆来控制角色的移动。

今天所用到的例子参考了网上的一个教程(http://www.unitymanual.com/thread-5189-1-1.html),原文用javascript实现了。我这里用c#来实现

                        (本文可以随意分享,请注明出处http://blog.csdn.net/janeky/article/details/17326711,谢谢!)

  • 具体步骤
1.导入Character Controller组件,主要是用到其中的角色模型
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脚本
[csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. using UnityEngine; 
  2. using System.Collections; 
  3.  
  4.  
  5. public class PlayerController : MonoBehaviour 
  6.     //角色 
  7.     public GameObject player; 
  8.     //摇杆 
  9.     public Joystick joystick; 
  10.  
  11.  
  12.     void Update() 
  13.     { 
  14.         //摇杆没有被触发 
  15.         if (joystick.tapCount <= 0) 
  16.         { 
  17.             return
  18.         } 
  19.         //获取摇杆偏移 
  20.         var joyPositionX = joystick.position.x; 
  21.         var joyPositionY = joystick.position.y; 
  22.  
  23.  
  24.         if (joyPositionY != 0 || joyPositionX != 0) 
  25.         { 
  26.             //设置角色的朝向(朝向当前坐标+摇杆偏移量) 
  27.             player.transform.LookAt(new Vector3(player.transform.position.x + joyPositionX, player.transform.position.y, player.transform.position.z + joyPositionY)); 
  28.             //移动玩家的位置(按朝向位置移动) 
  29.             player.transform.Translate(Vector3.forward * Time.deltaTime * 5); 
  30.             //播放奔跑动画 
  31.             player.animation.Play("run"); 
  32.         } 
  33.         else 
  34.         { 
  35.             //播放待机动画 
  36.             player.animation.Play("idle"); 
  37.         } 
  38.     } 
  • 最终的效果图:


Joystick.cs
代码比较多,就不详细列出。

主要思路:记录触摸的位置,记录相关的偏移量。与此相关联的是GUI Texture组件。

  • 总结
官方自带的摇杆组件比较简单,可以基本实现简单的功能。但是,也存在很多的局限,比如更换外观比较繁琐,无法自适应屏幕的大小确定相对位置,基于GUI layer。为此,下节我们将介绍一个功能更加强大的摇杆组件Easy Touch 3,敬请期待!有任何问题欢迎一起探讨ken@iamcoding.com

  • 源码地址

http://pan.baidu.com/s/1GMnyQ

更多
0 0
原创粉丝点击