最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity實(shí)現(xiàn)簡單手勢(shì)識(shí)別

 更新時(shí)間:2020年07月12日 15:38:43   作者:Maddie_Mo  
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡單手勢(shì)識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Unity實(shí)現(xiàn)手勢(shì)識(shí)別的具體代碼,供大家參考,具體內(nèi)容如下

代碼很簡單沒有難度,都有注解,隨便 看一看 就會(huì)了。

CallEvent () 方法需要自己搭載使用。

Unity代碼

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 手勢(shì)識(shí)別
/// </summary>

public class PlayerAnimator_ZH : MonoBehaviour
{
 //鼠標(biāo)第一次點(diǎn)擊位置
 public Vector2 _MousePos;
 //位置枚舉
 public GestureState _GestureStateBe;
 //最小動(dòng)作距離
 private float _MinGestureDistance = 20.0f;
 //手勢(shì)開啟布爾
 private bool _IsInvaild;
 
 void Update()
 {
  //手勢(shì)方法
  GestureOnClick();
 }

 //手勢(shì)方法
 public void GestureOnClick()
 {
  //手勢(shì)為空
  _GestureStateBe = GestureState.Null;

  if (Input.GetMouseButtonDown(0))
  {
   //第一次鼠標(biāo)點(diǎn)擊位置記錄
   _MousePos = Input.mousePosition;
   //開啟手勢(shì)識(shí)別
   _IsInvaild = true;

  }
  if (Input.GetMouseButton(0))
  {
   //鼠標(biāo)軌跡向量
   Vector2 _Dis = (Vector2)Input.mousePosition - _MousePos;
   //畫線
   Debug.DrawLine(_MousePos, (Vector2)Input.mousePosition, Color.cyan);
   //判斷當(dāng)前 向量的長度 是否大于 最小動(dòng)作距離
   if (_Dis.magnitude>_MinGestureDistance)
   {
    //判斷在 空間 X軸 還是在 Y軸
    if (Mathf.Abs(_Dis.x) > Mathf.Abs(_Dis.y) && _IsInvaild)
    {
     if (_Dis.x > 0)
     {
      //如果當(dāng)前向量值 X 大于 0 就是 Right 狀態(tài)
      _GestureStateBe = GestureState.Right;
     }
     else if (_Dis.x < 0)
     {
      //如果當(dāng)前向量值 X 小于 0 就是 Lift 狀態(tài)
      _GestureStateBe = GestureState.Lift;
     }
    }
    //判斷在 空間 X軸 還是在 Y軸
    else if (Mathf.Abs(_Dis.x) < Mathf.Abs(_Dis.y) && _IsInvaild)
    {
     if (_Dis.y > 0)
     {
      //如果當(dāng)前向量值 Y 大于 0 就是 Up 狀態(tài)
      _GestureStateBe = GestureState.Up;
     }
     else if (_Dis.y < 0)
     {
      //如果當(dāng)前向量值 Y 小于 0 就是 Down 狀態(tài)
      _GestureStateBe = GestureState.Down;
     }
    }
    //關(guān)閉手勢(shì)識(shí)別
    _IsInvaild = false;
   }   
  }
 }

 //呼叫事件
 public void CallEvent()
 {
  switch (_GestureStateBe)
  {
   case GestureState.Null:

    // Null 方法調(diào)用(自己寫)

    break;

   case GestureState.Up:

    // Up 方法調(diào)用(自己寫)

    break;

   case GestureState.Down:

    // Down 方法調(diào)用(自己寫)

    break;

   case GestureState.Lift:

    // Lift 方法調(diào)用(自己寫)

    break;

   case GestureState.Right:

    // Right 方法調(diào)用(自己寫)

    break;

   default:
    break;
  }
 }

 //狀態(tài)枚舉
 public enum GestureState
 {
  Null,
  Up,
  Down,
  Lift,
  Right
 }
}

其實(shí)代碼還可進(jìn)行補(bǔ)充,比如左上、左下、右上、右下、疊加等等吧,如有問題就 Call 我吧。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# XML序列化方法及常用特性總結(jié)分析

    C# XML序列化方法及常用特性總結(jié)分析

    這篇文章主要介紹了C# XML序列化方法及常用特性,總結(jié)分析了C# xml序列化的實(shí)現(xiàn)方法及序列化常用Attribute含義與功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#實(shí)現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法

    C#實(shí)現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法,涉及C#數(shù)組與字符串的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • C#組合函數(shù)的使用詳解

    C#組合函數(shù)的使用詳解

    本篇文章是對(duì)C#中的組合函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C# 實(shí)現(xiàn)ADSL自動(dòng)斷網(wǎng)和撥號(hào)的方法(適用于撥號(hào)用戶)

    C# 實(shí)現(xiàn)ADSL自動(dòng)斷網(wǎng)和撥號(hào)的方法(適用于撥號(hào)用戶)

    下面小編就為大家?guī)硪黄狢# 實(shí)現(xiàn)ADSL自動(dòng)斷網(wǎng)和撥號(hào)的方法(適用于撥號(hào)用戶)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • C#實(shí)現(xiàn)簡化QQ聊天窗口

    C#實(shí)現(xiàn)簡化QQ聊天窗口

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡化QQ聊天窗口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C# 如何添加錯(cuò)誤日志信息

    C# 如何添加錯(cuò)誤日志信息

    這篇文章主要介紹了C# 如何添加錯(cuò)誤日志信息,錯(cuò)誤日志是軟件用來記錄運(yùn)行時(shí)出錯(cuò)信息的文本文件。編程人員和維護(hù)人員等可以利用錯(cuò)誤日志對(duì)系統(tǒng)進(jìn)行調(diào)試和維護(hù)。
    2020-11-11
  • 詳解C#編程中異常的創(chuàng)建和引發(fā)以及異常處理

    詳解C#編程中異常的創(chuàng)建和引發(fā)以及異常處理

    這篇文章主要介紹了C#編程中異常的創(chuàng)建和引發(fā)以及異常處理,文中介紹了Catch塊和Finally塊等基本的異常處理要點(diǎn),需要的朋友可以參考下
    2016-02-02
  • c#中返回文章發(fā)表的時(shí)間差的示例

    c#中返回文章發(fā)表的時(shí)間差的示例

    現(xiàn)在是2012-12-04 11:29:59,發(fā)表時(shí)間是:2012-12-02 21:29:59,傳統(tǒng)的ts.Days因?yàn)橹禐?天14小時(shí)0分0秒,會(huì)返回“昨天”,而這個(gè)會(huì)返回“前天”
    2012-12-12
  • C# GDI+實(shí)現(xiàn)時(shí)鐘表盤

    C# GDI+實(shí)現(xiàn)時(shí)鐘表盤

    這篇文章主要為大家詳細(xì)介紹了C# GDI+實(shí)現(xiàn)時(shí)鐘表盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式

    c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式

    這篇文章主要給大家介紹了關(guān)于c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論

克拉玛依市| 宁强县| 阳谷县| 东乌珠穆沁旗| 顺平县| 莎车县| 杂多县| 彩票| 玉环县| 三河市| 准格尔旗| 阜城县| 宣汉县| 咸丰县| 南岸区| 镇康县| 连城县| 新营市| 荥经县| 嘉兴市| 岳普湖县| 沐川县| 宣威市| 罗山县| 海淀区| 华容县| 育儿| 文安县| 徐州市| 吉林省| 霍山县| 松江区| 宁武县| 资溪县| 锦屏县| 仪陇县| 广河县| 瑞丽市| 化州市| 肇庆市| 黑龙江省|