纳金网

标题: 快速创建双摇杆的工具 - Easy Touch [打印本页]

作者: 艾西格亚    时间: 2013-4-11 12:55
标题: 快速创建双摇杆的工具 - Easy Touch
本帖最后由 艾西格亚 于 2013-4-13 02:41 编辑

快速创建双摇杆的工具 - Easy Touch

在一些以往的教程里面大多已经介绍过了摇杆的GUI制作方式,不过对于一些不是懂程序的朋友来说,要做到将摇杆与场景内角色动作进行连接就有些难度了,有鉴于此,我们推荐一个比较方便的工具来完成上述的工作,这个使用的工具的为 Easy Touch,从名称上来看就能理解应该是很容易操作的一个东西。

现在,我们就来实际的安装与操作,首先导入Easy Touch的资源包,这个资源代号是2.5的版本,可以用在3.5.x 与4.0的Unity版本上面。插件下载位置 :http://www.narkii.com/club/thread-282960-1.html
1.jpg

如图,安装完成后,在Assets目录里面多了一个Easy Touch的文件夹。
2.jpg

我们在场景内放置了一个第三人称的角色,这个模型的套件是从Character Controller资源包内所导入,也是我们经常用来测试游戏效果的一套工具。
3.jpg

从模型的结构可看到里面有骨架动作(Bip01), 相机控制(CameraAxis)与Construction_Worker这几种组件。
4.jpg

接着选择 Hedgehog Team > Easy Touch > Extensions > Adding a new joystick功能,在Game视图内自动在左下方增加一个默认的摇杆图示。
5.jpg


将Hierarchy里面自动生成的New Joystick 更名为Move_Turn_Joystick,表示左边的摇杆的作用设定为移动与转向,同时系统内也会自动增加一个Easy Touch的控制组件。
7.jpg

Easy Touch的控制组件主要是一些基本属性的设定,原则上来说保持默认的设置即可。
8.jpg

在Move_Turn_Joystick的属性里面需要对摇杆的设置进行一些调整,首先是摇杆位置的调整,我们可以修改Joystick position的XY数值来改变摇杆在游戏画面的水平与高低位置。
9.jpg

如图,通过Joystick position的XY数值可随时调整摇杆的位置。
10.jpg

将Interaction的栏目第一个选项Interaction type更换为Direct And Event, 使用这个选项可以让摇杆的控制与角色的动作事件产生连接,将XY axis speed(水平与垂直的轴向移动)分别设定为50与10来调整摇杆的灵敏度, 然后将Player(角色组件)拖曳到Joystick X to 的栏位,Influenced 更改为Rotate,Axis influenced 设置为Y,表示在摇杆左右移动时角色会以Y为轴心进行旋转。Joystick Y to也是相同的做法,差别在于Influenced 设置为Translate Local的移动模式,选择Z轴表示摇杆在上下作用时,角色会在Z轴(地面)进行移动。
11.jpg

按下Play进行测试,当我们使用鼠标对摇杆进行不同方向的移动时,角色会进行左右视角的观看与前进的动作。
12.jpg

接下来设置右边的摇杆,同样的选择Hedgehog Team > Easy Touch > Extensions > Adding a new joystick功能增加另一个的摇杆组件,然后将名称更改为cameraController。
14.jpg

在游戏画面中cameraController是属于右摇杆的部分,所以我们需要调整Joystick position的XY数值,使其能与左摇杆有一个显示的区分。
15.jpg

16.jpg

由于右摇杆只用来控制相机的动作,所以在Interaction type只需选择Directi模式即可。
XY的Axis Speed设置为50与2,然后将相机的定位点CameraAxis拖曳到Joystick X to的栏位,Influenced 选择Rotate Local模式,对应的转向为Y轴。
将相机拖曳到Joystick Y to 的栏位,Influenced 选择Translate Local模式,对应的转向为Z轴,这个设定的作用是让右摇杆能控制相机视角的转向与远进。


设置完成后进行Play测试,现在两个摇杆分别控制了视角的变化与角色的行进动作。
19.jpg



完成所有设定之后,我们来看看角色对应左摇杆所使用的脚本内容:

using UnityEngine;
using System.Collections;

/// <summary>
/// Joystick event
/// </summary>
public class JoystickEvent : MonoBehaviour {

    void OnEnable(){
        EasyJoystick.On_JoystickMove += On_JoystickMove;
        EasyJoystick.On_JoystickMoveEnd += On_JoystickMoveEnd;
    }
   
    void OnDisable(){
        EasyJoystick.On_JoystickMove -= On_JoystickMove    ;
        EasyJoystick.On_JoystickMoveEnd -= On_JoystickMoveEnd;
    }
        
    void OnDestroy(){
        EasyJoystick.On_JoystickMove -= On_JoystickMove;   
        EasyJoystick.On_JoystickMoveEnd -= On_JoystickMoveEnd;
    }
   
//用来对应建立的摇杆组件名称,在摇杆没有任何作用的情况下,角色为静止的动作。
    void On_JoystickMoveEnd(MovingJoystick move){
        if (move.joystickName == "Move_Turn_Joystick"){
            animation.CrossFade("idle");
        }
    }

// 摇杆的Y轴如果偏移值大于0并小于0.5的数值,角色动作更换为走路,如果等于或是大于0.5则切换为跑步的动作。

    void On_JoystickMove( MovingJoystick move){
        if (move.joystickName == "Move_Turn_Joystick"){
            if (Mathf.Abs(move.joystickAxis.y)>0 && Mathf.Abs(move.joystickAxis.y)<0.5){
                animation.CrossFade("walk");
               
            }   
            else if (Mathf.Abs(move.joystickAxis.y)>=0.5){
                animation.CrossFade("run");   
            }
        }
    }
}

Easy Touch是一个快速而方便的触控性插件,除了摇杆的制作功能,多点触控的设计亦是这个插件的极大优势,在后面的章节里面,我们将会针对多点触控部分进行更多的介绍。




作者: libufan    时间: 2013-4-13 00:46
谢谢楼主分享,正好缺少资料
作者: may    时间: 2013-4-13 02:41
学习了,很方便的资源
作者: 王者再临    时间: 2013-4-13 03:12
那个浮水印真是够大了。。。
作者: fcczhfgs    时间: 2013-4-13 09:29
学习一下,这个创建摇杆很方便
作者: yangjianhu    时间: 2013-4-13 10:30
thanks学习一下,这个创建摇杆很方便
作者: may    时间: 2013-4-13 15:28
用在手机上应该也是ok吧
作者: 大大虾    时间: 2013-5-5 00:24
老大V5~~~好教程!~
作者: kurtyowl0315    时间: 2013-5-6 16:52
好教程  感謝大大
作者: fcczhfgs    时间: 2013-5-7 09:28
这个做摇杆很方便啊
作者: free365    时间: 2013-5-27 12:16
感觉这货是做手游用的
作者: 王者再临    时间: 2013-5-27 18:59
这个用在第一人称的制作上不知效果如何
作者: aoikalin    时间: 2013-5-29 17:39
好教程  感謝
作者: likunhan    时间: 2013-5-30 11:09
看上去很美,还有一些问题要改进啊。
作者: rookielee    时间: 2013-5-30 16:17
非常感谢 学习了
作者: werdsazxc    时间: 2013-6-2 23:29
WOW~
貌似很強大啊
支持囉!
作者: shengbin88    时间: 2013-8-15 16:09
不错的教程
作者: alexlam127    时间: 2013-8-15 16:18
谢谢分享。。。。。

作者: zoeyun520    时间: 2013-8-16 16:40
thanks学习一下,这个创建摇杆很方便
作者: wyh880123    时间: 2013-8-16 19:33
谢谢了,后面可能会用到!
作者: ZackD    时间: 2013-9-18 13:20
很受用的教程,谢谢了
作者: cclove    时间: 2013-9-18 13:34
很不错,还有教程。要是每个插件都这样就好了。
作者: 毛毛虫    时间: 2013-10-9 15:57
很不错啊这个插件,回来试试!
作者: pz789as    时间: 2014-2-28 14:50
谢谢楼主分享
作者: 鸡贼不差钱    时间: 2014-3-14 13:58
非常好的东西,学习了
作者: jacob    时间: 2014-3-17 16:37
libufan 发表于 2013-4-13 00:46
谢谢楼主分享,正好缺少资料

学习了,很方便的资源
作者: L1247    时间: 2014-5-17 21:32
感謝分享
作者: wusky751023    时间: 2015-6-22 01:33
找半天終於找到適合用在手機觸摸屏的教程了@@
感謝感謝




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5