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

unity實(shí)現(xiàn)多點(diǎn)觸控代碼

 更新時(shí)間:2015年03月30日 11:28:27   投稿:hebedich  
這篇文章主要介紹了unity實(shí)現(xiàn)多點(diǎn)觸控代碼,我最近在學(xué)習(xí)Unity游戲引擎。先從Unity平面開(kāi)始,本章介紹Unity 平面上的多點(diǎn)觸摸。有需要的小伙伴參考下。

這是我在論壇看到的,unity多點(diǎn)觸控。感覺(jué)還不錯(cuò),分享給大家

//用于綁定參照物對(duì)象
var target : Transform;
//縮放系數(shù)
var distance = 10.0;
//左右滑動(dòng)移動(dòng)速度
var xSpeed = 250.0;
var ySpeed = 120.0;
//縮放限制系數(shù)
var yMinLimit = -20;
var yMaxLimit = 80;
//攝像頭的位置
var x = 0.0;
var y = 0.0;
//記錄上一次手機(jī)觸摸位置判斷用戶是在左放大還是縮小手勢(shì)
private var oldPosition1 : Vector2;
private var oldPosition2 : Vector2;
 
//初始化游戲信息設(shè)置
function Start () {
  var angles = transform.eulerAngles;
  x = angles.y;
  y = angles.x;
 
  // Make the rigid body not change rotation
  if (rigidbody)
    rigidbody.freezeRotation = true;
}
 
function Update ()
{
  //判斷觸摸數(shù)量為單點(diǎn)觸摸
  if(Input.touchCount == 1)
  {
    //觸摸類型為移動(dòng)觸摸
    if(Input.GetTouch(0).phase==TouchPhase.Moved)
    {
      //根據(jù)觸摸點(diǎn)計(jì)算X與Y位置
      x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
      y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
 
    }
  }
 
  //判斷觸摸數(shù)量為多點(diǎn)觸摸
  if(Input.touchCount >1 )
  {
    //前兩只手指觸摸類型都為移動(dòng)觸摸
    if(Input.GetTouch(0).phase==TouchPhase.Moved¦¦Input.GetTouch(1).phase==TouchPhase.Moved)
    {
        //計(jì)算出當(dāng)前兩點(diǎn)觸摸點(diǎn)的位置
        var tempPosition1 = Input.GetTouch(0).position;
        var tempPosition2 = Input.GetTouch(1).position;
        //函數(shù)返回真為放大,返回假為縮小
        if(isEnlarge(oldPosition1,oldPosition2,tempPosition1,tempPosition2))
        {
          //放大系數(shù)超過(guò)3以后不允許繼續(xù)放大
          //這里的數(shù)據(jù)是根據(jù)我項(xiàng)目中的模型而調(diào)節(jié)的,大家可以自己任意修改
          if(distance > 3)
          {
            distance -= 0.5;
          }
        }else
        {
          //縮小洗漱返回18.5后不允許繼續(xù)縮小
          //這里的數(shù)據(jù)是根據(jù)我項(xiàng)目中的模型而調(diào)節(jié)的,大家可以自己任意修改
          if(distance < 18.5)
          {
            distance += 0.5;
          }
        }
      //備份上一次觸摸點(diǎn)的位置,用于對(duì)比
      oldPosition1=tempPosition1;
      oldPosition2=tempPosition2;
    }
  }
}
 
//函數(shù)返回真為放大,返回假為縮小
function isEnlarge(oP1 : Vector2,oP2 : Vector2,nP1 : Vector2,nP2 : Vector2) : boolean
{
  //函數(shù)傳入上一次觸摸兩點(diǎn)的位置與本次觸摸兩點(diǎn)的位置計(jì)算出用戶的手勢(shì)
  var leng1 =Mathf.Sqrt((oP1.x-oP2.x)*(oP1.x-oP2.x)+(oP1.y-oP2.y)*(oP1.y-oP2.y));
  var leng2 =Mathf.Sqrt((nP1.x-nP2.x)*(nP1.x-nP2.x)+(nP1.y-nP2.y)*(nP1.y-nP2.y));
  if(leng1<leng2)
  {
     //放大手勢(shì)
     return true;
  }else
  {
    //縮小手勢(shì)
    return false;
  }
}
 
//Update方法一旦調(diào)用結(jié)束以后進(jìn)入這里算出重置攝像機(jī)的位置
function LateUpdate () {
 
  //target為我們綁定的箱子變量,縮放旋轉(zhuǎn)的參照物
  if (target) {    
 
    //重置攝像機(jī)的位置
    y = ClampAngle(y, yMinLimit, yMaxLimit);
    var rotation = Quaternion.Euler(y, x, 0);
    var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
 
    transform.rotation = rotation;
    transform.position = position;
  }
}
 
static function ClampAngle (angle : float, min : float, max : float) {
  if (angle < -360)
    angle += 360;
  if (angle > 360)
    angle -= 360;
  return Mathf.Clamp (angle, min, max);
}

以上所述就是本文的全部?jī)?nèi)容了,有需要的小伙伴可以參考下

您可能感興趣的文章:
  • C# 獲取漢字的拼音首字母

    C# 獲取漢字的拼音首字母

    一種是把所有中文字符集合起來(lái)組成一個(gè)對(duì)照表;另一種是依照漢字在Unicode編碼表中的排序來(lái)確定拼音的首字母。碰到多音字時(shí)就以常用的為準(zhǔn)(第一種方法中可以自行更改,方法為手動(dòng)把該漢字移動(dòng)到對(duì)應(yīng)的拼音首字母隊(duì)列,我們這里介紹第二種
    2015-06-06
  • C#用RabbitMQ實(shí)現(xiàn)消息訂閱與發(fā)布

    C#用RabbitMQ實(shí)現(xiàn)消息訂閱與發(fā)布

    在消息隊(duì)列模型中,如何將消息廣播到所有的消費(fèi)者,這種模式成為“發(fā)布/訂閱”。本文主要以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述通過(guò)fanout交換機(jī),實(shí)現(xiàn)消息的發(fā)布與訂閱,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正。
    2021-05-05
  • linux操作系統(tǒng)安裝MONO執(zhí)行C#程序的詳解步驟

    linux操作系統(tǒng)安裝MONO執(zhí)行C#程序的詳解步驟

    這篇文章主要介紹了linux操作系統(tǒng)安裝MONO執(zhí)行C#程序詳解步驟,有需要的可以參考一下
    2013-12-12
  • C#?利用Autofac批量接口注入依賴的問(wèn)題小結(jié)

    C#?利用Autofac批量接口注入依賴的問(wèn)題小結(jié)

    這篇文章主要介紹了C#?利用Autofac批量接口注入依賴的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • c# 如何更簡(jiǎn)單的使用Polly

    c# 如何更簡(jiǎn)單的使用Polly

    這篇文章主要介紹了c# 如何更簡(jiǎn)單的使用Polly,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • 詳解C#異步多線程使用中的常見(jiàn)問(wèn)題

    詳解C#異步多線程使用中的常見(jiàn)問(wèn)題

    本文主要介紹了C#異步多線程使用中的常見(jiàn)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Unity實(shí)現(xiàn)首字母檢索器

    Unity實(shí)現(xiàn)首字母檢索器

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)首字母檢索器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C#實(shí)現(xiàn)帶引導(dǎo)窗體的窗體設(shè)計(jì)操作流程

    C#實(shí)現(xiàn)帶引導(dǎo)窗體的窗體設(shè)計(jì)操作流程

    很多時(shí)候,我們的窗體設(shè)計(jì)需要一個(gè)引導(dǎo)窗體,當(dāng)打開(kāi)一個(gè)項(xiàng)目的窗體時(shí),默認(rèn)的是先打開(kāi)一個(gè)歡迎或介紹項(xiàng)目信息的引導(dǎo)窗體,幾秒鐘后再打開(kāi)項(xiàng)目的主窗體,本文給大家介紹了C#實(shí)現(xiàn)帶引導(dǎo)窗體的窗體設(shè)計(jì)操作流程,感興趣的朋友可以參考下
    2024-04-04
  • 最新評(píng)論

    聂拉木县| 鹤峰县| 会东县| 涟源市| 东海县| 习水县| 武威市| 云和县| 平武县| 白河县| 福泉市| 靖西县| 六安市| 桃园县| 陆良县| 永丰县| 上栗县| 南通市| 高平市| 镇远县| 延吉市| 呼伦贝尔市| 赫章县| 锡林郭勒盟| 合肥市| 深泽县| 静安区| 长沙市| 延川县| 游戏| 措美县| 双鸭山市| 永川市| 黄陵县| 麟游县| 卓尼县| 伊宁县| 礼泉县| 烟台市| 维西| 隆子县|