Unity 编写类似神庙逃亡手势

1、首先我们先定义一个枚举,用来表示手势滑动的四个方向:

<span style="font-size:14px;">public enum TouchDirection
{
    Unkown,
    Left,
    Right,
    Up,
    Down
}</span>

2、定义类:TouchInput

<span style="font-size:14px;">public class TouchInput : MonoBehaviour {
    public static TouchInput instance;
    private Vector2 touchBeginPos;
    private Vector2 touchEndPos;
}
</span>

3、对instance进行初始化:

<span style="font-size:14px;">void Start () {
	    Init();
	}

    void Init()
    {
        if (instance == null)
        {
            instance = this;
        }
    }</span>

4、编写根据Touch计算滑动方向:

<span style="font-size:14px;">public TouchDirection GetTouchMoveDirection()
    {
        if (Input.touchCount > 0)
        {
            TouchDirection dir = TouchDirection.Unkown;
            if (Input.touches[0].phase != TouchPhase.Canceled)
            {
                switch (Input.touches[0].phase)
                {
                    case TouchPhase.Began:
                        touchBeginPos = Input.touches[0].position;
                        break;
                    case TouchPhase.Ended:
                        touchEndPos = Input.touches[0].position;

                        if (Mathf.Abs(touchBeginPos.x - touchEndPos.x) > Mathf.Abs(touchBeginPos.y - touchEndPos.y))
                        {
                            if (touchBeginPos.x > touchEndPos.x)
                            {
                                dir = TouchDirection.Left;
                            }
                            else
                            {
                                dir = TouchDirection.Right;
                            }
                        }
                        else
                        {
                            if (touchBeginPos.y > touchEndPos.y)
                            {
                                dir = TouchDirection.Down;
                            }
                            else
                            {
                                dir = TouchDirection.Up;
                            }
                        }
                        break;
                }
            }
            return dir;
        }
        else
        {
            return TouchDirection.Unkown;
        }
    }</span>

5、使用方法:

首先,我们必须把我们写好的TouchInput脚本挂在物体上实例,在需要用到的地方应用:

void Update () {
        TouchInputTest();
	}
void TouchInputTest()
    {
        switch (TouchInput.instance.GetTouchMoveDirection())
        {
            case TouchDirection.Up:
                Debug.Log("Up");
                break;
            case TouchDirection.Down:
                Debug.Log("Down");
                break;
            case TouchDirection.Left:
                Debug.Log("Left");
                break;
            case TouchDirection.Right:
                Debug.Log("Right");
                break;
        }
    }

这样不论在什么地方,只要我们需要,我们就可以实例TouchInput.instance,进而拿到我们的滑动方向。

时间: 2024-10-12 12:40:24

Unity 编写类似神庙逃亡手势的相关文章

unity传送门类似效果实现

简述 在传送门中,核心的玩法是在地上或者墙上打开2个可以联通的洞来实现传送的效果.以此扩展加入解谜要素构成游戏的核心. 这里尝试使用unity来实现传送门的核心功能,具体功能分析如下: 1.传送门的模型 2.传送门的贴图 3.传送门的传送功能 这里我们需要以下软件:3dmax 2014,unity3d 5.4.0,visual studio 2015 一.传送门的模型和uv        打开3dmax,确认系统单位和显示单位都为米,如果不为米,改成米         建立一个圆柱体,高度段数1

JS编写类似弹出窗口样式显示层

JSp中增加div <!-- 提交变更申请 --> <div id="changeWindow" class="easyui-window" data-options="title:'提交变更申请',collapsible:false,minimizable:false,maximizable:false,modal:true" closed="true" style="width:820px;he

react better-scroll 编写类似手机chrome的header显示隐藏效果

关键代码 const H = 50; // header的高度 const H2 = H / 2; let cy = 0; class Home extends Component { @observable top = 0; @observable ms = 0; onScroll = ({ y }) => { let scrollLength = Math.abs(y - cy); if (y < cy) { l("paeg up"); if (this.top >

FingerGestures研究院之初探Unity手势操作

最近研究了一下Unity中的一个手势操作的插件FingerGestures.它能很方便监听到Unity中的各种手势事件:上下左右四方向的滑动事件.按下事件.抬起事件.移动事件.连击事件.长按事件等等.它同时支持触摸屏操作与鼠标操作,总起来说使用起来还是比较方便的,今天写下教程记录这个插件的详细使用步骤.首先下载这个插件,大家可以在圣典上找这个插件的下载地址,当然也可以在本文最后下载该插件.  我看了一下这个插件底层的实现步骤,他是通过C#代理的形式来实现手势操作的.如下图红圈内所示,这五个重要的

C#开发Unity游戏教程之Unity中方法的参数

C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别方法的作用吧.既然C#的语法规定方法就应该这么写,肯定是有一定道理的.如果是上升到战略意义的道理,连作者也不是很明白,但是作者知道这对括号里可以添加“参数”. Unity中参数的作用 要说明参数的作用,就必须从方法说起.方法可以处理变量中的数据,进而影响游戏对象的行为逻辑,这是本章前面一直在强调的.

Unity StrangeIoc框架 (二)

MVCSContex :the big picture 1.应用程序的入口是一个类成为ContextView,这是一个Monobehavior实例化MVCSContext 2.用MVCSContext来执行各种绑定. 3.派发器是一个通信总线,允许你再程序发送消息,在mvcscontext中他们发送的是TimEvents, 或者你可以按照上面的步骤重写Context 来使用Signals 4.命令类由TimeEvents或信号触发,然后他会执行一些app逻辑. 5.模型存储状态 6.servic

UIKit框架(16)手势识别器

UIGestureRecognizer 利用手势识别器,能够轻松识别用户在某个view上面做一些常见的手势 UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势 UITapGestureRecognizer                敲击 UIPinchGestureRecognizer            捏合手势 UIPanGestureRecognizer               拖拽 UISwipeGestureRecog

iOS小米遥控器的手势监听及UI实现

这篇文章通过实例实现了一个类似小米手势遥控器的功能页面. 效果图如下所示: 触摸事件的响应通过对系统的触摸实践监听来进行. 通过一个数组来对点的集合进行缓存和分析. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (!self.allowsInteraction) return; UITouch *touch = [touches anyObject]; CGPoint start = [touch lo

Unity MVC框架 StrangeIoC

http://blog.csdn.net/akof1314/article/details/26500871 StrangeIoC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写. 项目地址:https://github.com/strangeioc/strangeioc 文档地址:http://strangeioc.github.io/strangeioc/TheBigStrangeHowTo.html 一些术语:http://strangeioc.github.