热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity手游之路六游戏摇杆之EasyTouch3教程

之前已经介绍过Unity自带的摇杆Joystick,它用起来很简单。但是它也存在很多局限,不能全部满足普通mmo手游的一些需求,例如&#x

之前已经介绍过Unity自带的摇杆Joystick,它用起来很简单。但是它也存在很多局限,不能全部满足普通mmo手游的一些需求,例如:要能方便地更好素材;能指定在某个区域显示,或者只有在该区域触摸时才出现等等。而这些功能,Easy Touch插件都已经帮你实现了。全部是可配置。大家可以从Asset Store上购买,或者使用free版。

                                                         (可随意分享,请注明原文出处http://blog.csdn.net/janeky/article/details/17364903)


  • 实例

还是用上次例子来实现。控制角色的移动


  • 步骤

1.import “Easy Touch 3”的资源包

2.创建人物模型

3.创建地形

4.添加一个Joystick的实例 :Hedgehog Team->Easy Touch->Extensions->Add a new Joystick。这时我们可以看到它在左下角出来

5.设置摇杆的相关的参数,详见下图


派生到我的代码片
  1. using UnityEngine; 
  2. using System.Collections; 
  3.  
  4. public class MoveController : MonoBehaviour { 
  5.  
  6.     void OnEnable() 
  7.     { 
  8.         EasyJoystick.On_JoystickMove += OnJoystickMove; 
  9.         EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd; 
  10.     } 
  11.  
  12.  
  13.     //移动摇杆结束 
  14.     void OnJoystickMoveEnd(MovingJoystick move) 
  15.     { 
  16.         //停止时,角色恢复idle 
  17.         if (move.joystickName == "MoveJoystick"
  18.         { 
  19.             animation.CrossFade("idle"); 
  20.         } 
  21.     } 
  22.  
  23.  
  24.     //移动摇杆中 
  25.     void OnJoystickMove(MovingJoystick move) 
  26.     { 
  27.         if (move.joystickName != "MoveJoystick"
  28.         { 
  29.             return
  30.         } 
  31.          
  32.         //获取摇杆中心偏移的坐标 
  33.         float joyPositionX = move.joystickAxis.x; 
  34.         float joyPositionY = move.joystickAxis.y; 
  35.  
  36.  
  37.         if (joyPositionY != 0 || joyPositionX != 0) 
  38.         { 
  39.             //设置角色的朝向(朝向当前坐标+摇杆偏移量) 
  40.            transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY)); 
  41.             //移动玩家的位置(按朝向位置移动) 
  42.             transform.Translate(Vector3.forward * Time.deltaTime * 5); 
  43.             //播放奔跑动画 
  44.             animation.CrossFade("run"); 
  45.         } 
  46.     } 

using UnityEngine;
using System.Collections;public class MoveController : MonoBehaviour {void OnEnable(){EasyJoystick.On_JoystickMove += OnJoystickMove;EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;}//移动摇杆结束void OnJoystickMoveEnd(MovingJoystick move){//停止时,角色恢复idleif (move.joystickName == "MoveJoystick"){animation.CrossFade("idle");}}//移动摇杆中void OnJoystickMove(MovingJoystick move){if (move.joystickName != "MoveJoystick"){return;}//获取摇杆中心偏移的坐标float joyPositionX = move.joystickAxis.x;float joyPositionY = move.joystickAxis.y;if (joyPositionY != 0 || joyPositionX != 0){//设置角色的朝向(朝向当前坐标+摇杆偏移量)transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));//移动玩家的位置(按朝向位置移动)transform.Translate(Vector3.forward * Time.deltaTime * 5);//播放奔跑动画animation.CrossFade("run");}}
}
完成收工,具体的效果图






最后我们来看看Easy Touch的参数





Easy Touch提供了虚拟摇杆的解决方案,基本能满足你的各种需求。包括前面所说的,定制UI,隐藏,指定区域等。可以在你的项目中尝试使用


推荐阅读
author-avatar
wsx迪_257
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有