Unity3D判断触摸方向

据说

Temple Run(神庙逃亡)

就是用这种方式操作的

废话不多说

直接上代码

using UnityEngine;
using System.Collections;

public class Touch : MonoBehaviour
{
    private Vector2 beginPos;
    // Use this for initialization
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        TouchDirection();
    }

    void TouchDirection()
    {
        if (Input.touchCount <= 0)
            return;

        if (Input.touchCount == 1)
        {
            if (Input.touches[0].phase == TouchPhase.Began)
            {
                beginPos = Input.touches[0].positon;
            }
            else if (Input.touches[0].phase == TouchPhase.Moved)
            {
            }

            if (Input.touches[0].phase == TouchPhase.Ended && Input.touches[0].phase != TouchPhase.Canceled)
            {
                Vector2 pos = Input.touches[0].position;
                if (Mathf.Abs(beginPos.x = pos.x) > Mathf.Abs(beginPos.y = pos.y))
                {
                    if (beginPos.x > pos.x)
                    {
                        //向左
                    }
                    else
                    {
                        //向右
                    }
                }
                else
                {
                    if (beginPos.y > pos.y)
                    {
                        //向下
                    }
                    else
                    {
                        //向上
                    }
                }
            }
        }
    }
}
声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出
时间: 2024-10-07 12:44:36

Unity3D判断触摸方向的相关文章

Unity3D判断鼠标向右或向左滑动,响应不同的事件

private var first = Vector2.zero; private var second = Vector2.zero; function Update () { } function OnGUI () { if(Event.current.type == EventType.MouseDown) { //记录鼠标按下的位置 first = Event.current.mousePosition ; } if(Event.current.type == EventType.Mou

移动应用滑动屏幕方向判断解决方案,JS判断手势方向

问题分类 滑动屏幕打开相应功能操作. 问题描述 1.用户手动滑动屏幕,根据滑动的方向,打开相应的功能(如:向上滑摇钱树经验明细,向下滑打开任务明细,向左滑打开聚宝盆物品查看等功能),滑动事件捕获问题. 2.大家都知道,划动都有角度问题,如:向330度方向滑动手机,要计算出它的方向问题. 3.HTML5提供的滑动事件,只能读取到起点和终点坐标,计算角度问题. 4.手机屏幕坐标与标准坐标系转换问题. 解决方案 1.滑动屏幕事件使用HTML5 的touchstart滑动开始事件和touchend滑动结

移动端判断触摸的方向

最近做微信端页面,于是趁周末梳理了下移动端的事件这一块. 通过判断手指在屏幕上移动的位置减去手指放在屏幕上时的位置,就可以得出是往什么方向滑动: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css">

Unity3D判断当前所在平台

Unity3D是一个跨平台的开发工具,支持的平台五花八门,常常开发一款游戏要发布到不同的平台,在不同的平台上会使用不同的代码,难道要我们各平台分别使用一套代码,单独编译一次吗?当然不用了,呵呵.    Unity3D有一个功能叫平台依赖编译(Platform Dependent Compilation),它可以让我们简单地使用if...else...对不同平台的代码进行区分,当我们切换一个发布平台重新编译时,Unity3D使用自动编译相应代码,从而省去了繁琐的操作.    下边举一个例子: 1

Unity3D 判断鼠标是否按在UGUI上

判断鼠标是否点击在UGUI上 #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #endif using UnityEngine; using UnityEngine.UI; using System.Collections; using UnityEngine.EventSystems; public clas

unity判断触摸

单点触摸 Input.touchCount==1 移动触摸 Input.GetTouch(0).phase==TouchPhase.Moved 多点触摸 Input.touchCount > 1 判断两只手指至少有一只为移动触摸 Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved /** * 判断是否为单点触摸 **/ public static bool singl

Unity3D判断不规则范围内是否存在一点

//该方法的前提,不规则的范围已经用Collider2D给画出来了 //举个栗子:判断是否点击了某个不规则的游戏对象  LayerMask SomeLayer = LayerMask.GetMask("layer名"); //这个SomeLayer是重点,这里表示游戏对象所在layer,一般要事先命名一个layer层,把游戏对象的layer层设为该层 if(InPut.GetMouseButtonDown(0)) { Vector mousePoint = Camera.Main.Sc

Swift - 判断设备方向(或监听设备方向的改变)

通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向. 同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面. 下面通过一个样例,演示如何监测设备方向: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import UIKit cla

js给页面添加滚动事件并判断滚动方向

<script> var scrollFunc = function (e) { var direct = 0; e = e || window.event; if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //当滑轮向上滚动时 alert("滑轮向上滚动"); } if (e.wheelDelta < 0) { //当滑轮向下滚动时 alert("滑轮向下滚动");