第一步:新建两个Joystick,分别改名LeftJoyStick和RightJoyStick

在LeftJoyStick的ETC Joystick-Axes properties中的Horizontal axis-General setting中将要控制的人物Player拖入框中,action选translate,Affected action选 X

到现在位置,就可以通过左摇杆控制人物移动了,人物移动太快怎么办,Speed调慢点即可。

下面开始设置人物移动时要调用Move动画,用bool控制,这个事先做好这里不再阐述,那么如何调用呢?

打开Player角色下的Player脚本(原先键盘控制的脚本),添加两个公开函数

 public void RunAnimatorOpen()
{
m_Animator.SetBool("move", true);
} public void RunAnimatorStop()
{
m_Animator.SetBool("move", false);
}

然后在leftjoystick的etc的MoveEvents框中的OnMoveStart()和OnMoveEnd()

分别将Player角色物体拖入target框选择Gameobject.BroadcastMessage,下面分别填入

RunAnimatorOpen

RunAnimatorStop

这时候摇杆移动就会调用RunAnimatoropen函数,不移动就调用RunAnimatorStop函数,从而达到控制动画的效果。

第二步,开始对右摇杆设置,首先在Player脚本添加下面一段

 public void MoveInRightJoyStick(Vector2 weizhi)
{
if (weizhi.y != || weizhi.x != )
{
//设置角色的朝向(朝向当前坐标+摇杆偏移量)
transform.LookAt(new Vector3(transform.position.x + weizhi.x, transform.position.y, transform.position.z + weizhi.y));
}
}

简单来说就是easytouch通过OnMoveSpeed传出一个Vector2,所以我们要在Player脚本创一个函数(变量是Vector2)用于接受传出的Vector2,并且利用这个与人物的位置构成一个矢量,再用LookAt就能控制人物朝向了。

调试没问题后,但是发现死亡后还能移动和旋转,怎么办?

第三步,原本在人物Player下有一个HealthManager的脚本,里面有个Dead()的函数,一旦hp<=0后就会禁用有关脚本的调用,这时我们只要在函数中其中加两句

 ETCInput.SetControlActivated("LeftJoystick", false);
ETCInput.SetControlActivated("RightJoystick", false);

即可实现死亡后双摇杆的禁用,到此时就大功告成!!

Unity5.5+easytouch5双摇杆控制角色移动的更多相关文章

  1. 游戏开发之在UE4中编写C++代码控制角色

    当你运行我们上次做完的项目,你可能会意识到我们移动的摄像机还是默认的那个摄像机,这个默认的摄像机可以自由飞翔.这一节,我们要使得开始的角色是我们的一个Avatar类的实例对象,并且使用键盘控制我们的角 ...

  2. unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色

    在写第三人称控制的时候,一开始在电脑测试是用WASD控制角色 后来需要发布到手机上,于是就加了一个摇杆 键盘控制角色的代码已经写好了,角色八方向移动 如果按照传统的大众思路来控制的话,是达不到我想要的 ...

  3. CocosCreator游戏开发(四)实现摇杆控制角色功能

    时隔3年,我又开始继续写这个系列的帖子了,也不知道是会写完全系列,还是再次夭折. 废话不多.直接开始主题了 主要实现的功能点包含这些内容:通过摇杆控制角色进行八方位移动,并按照各方位播放对应移动动画 ...

  4. Unity控制角色移动

    Copy代码前的准备工作 整体结构 建立个空对象命名随意,主要是为了:角色掉出地图时,可以回到空对象的位置 在建立个空对象命名为Player,放到PlayResurrectionPoints子级下,并 ...

  5. unity---角色控制器控制角色移动

    获取对象 public CharacterController cc; cc=gameObject.GetComponent<CharacterController>(); if(Inpu ...

  6. [Unity3D]Unity3D游戏开发之角色控制漫谈

    各位朋友,大家好.我是秦元培,欢迎大家关注我的博客,我的博客地址blog.csdn.net/qinyuanpei.今天呢,我们来说说Unity3D中的角色控制,这篇文章并非关注于Unity3D中的某项 ...

  7. 【Unity】10.4 类人动画角色的控制

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 导入角色网格和动画及设置 Avatar 之后,就可以准备开始在游戏中使用它们了.以下部分涵盖 Mecanim 提供的.用 ...

  8. unity3D角色代码控制问题

    ///////////////2015/07/06//////// ///////////////by xbw////////////// //////////////环境 unity4.6.1// ...

  9. CharacterController 角色控制器实现移动和跳跃

    之前我使用SimpleMove来控制角色的移动, 后来又想实现人物的跳跃, 看见圣典里面是使用Move来实现的. =.= 然后我都把他们改成move来实现了 代码实现: using UnityEngi ...

随机推荐

  1. [na][tools]tcp/udp连通性测试

    一 端口连通性测试意义 目的端可以使用nc来临时开一个端口,客户端用telnet来连接测试 测试网络端口可达性,确保给某些使用特定端口的app做链路连通性检测.使它们能够正常的运行起来. 二 测试方法 ...

  2. 使用VMware安装CentOS7步骤详情

    准备资料: CentOS-7-x86_64-Everything-1611 点击下载CentOS 对,资料就这些 第一步.  点击文件  再点击新建虚拟机 第二步 .点击完新建虚拟机之后会跳出一个窗口 ...

  3. WPF中DependencyObject与DependencyProperty的源代码简单剖析

    Windbg调试WPF的依赖属性中提到了wpf的DependencyObject中DependencyProperty是怎样调试查看的. 从中我们看出DO(DependencyObject)与 DP( ...

  4. hdoj 1027 Ignatius and the Princess II 【逆康托展开】

    Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ( ...

  5. android studio - 解决Android Studio不停的Indexing的问题

    File > Invalidate Caches/Restart

  6. CCEaseElasticOut调整速度和振幅

    pSprite->setAnchorPoint(CCPoint(,)); pSprite->setPosition(CCPoint(,)); CCFiniteTimeAction* pAc ...

  7. Solr学习之四-Solr配置说明之二

    上一篇的配置说明主要是说明solrconfig.xml配置中的查询部分配置,在solr的功能中另外一个重要的功能是建索引,这是提供快速查询的核心. 按照Solr学习之一所述关于搜索引擎的原理中说明了建 ...

  8. zuul超时及重试配置1

    eureka: client: register-with-eureka: true serviceUrl: defaultZone: http://localhost:8761/eureka/ se ...

  9. LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题

    Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in sp ...

  10. Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{use:database=default}) (state=08S01,code=0)

    sparksql 2.和hive2.1.1 由于sparksql中的hive-cli 等包的版本是1.2的需要自己下载,下载替换之后不报错,替换之前做好备份