国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Unity3D 游戲引擎之iOS觸摸屏手勢控制鏡頭旋轉(zhuǎn)與縮放

移動開發(fā) iOS 游戲開發(fā)
前幾篇文章介紹了很多Unity3D引擎自身的一些問題, 今天我們在回到IOS設(shè)備上討論一些觸摸屏幕手勢,本章的目標是通過觸摸iPhone屏幕手勢 實現(xiàn)模型左右的旋轉(zhuǎn),與模型的縮放。

前幾篇文章介紹了很多Unity3D引擎自身的一些問題, 今天我們在回到IOS設(shè)備上討論一些觸摸屏幕手勢,本章的目標是通過觸摸iPhone屏幕手勢 實現(xiàn)模型左右的旋轉(zhuǎn),與模型的縮放。

大家想一想模型的旋轉(zhuǎn),實際上是鏡頭的旋轉(zhuǎn)。模型的縮放實際上是鏡頭Z軸方向的坐標。那么實現(xiàn)本章的內(nèi)容只需要控制鏡頭的位置方可實現(xiàn)。

我們在游戲場景中創(chuàng)建一些簡單的模型做為參照物,插一句 “大家有誰知道 . FBX 的模型那里可以免費找到,我想在博文中加點游戲模型讓場景更好看一些,可是苦于找不到有點郁悶,用公司的模型來寫博文有覺得有點不合適”哇咔咔 ,如果有知道的哥們 不妨告訴我喔。啦啦啦。 

我們創(chuàng)建一個簡單的游戲平面, 然后平面中放一個箱子做為旋轉(zhuǎn)縮放的參照物。如下圖所示,選中攝像機,給攝像機添加一個腳本名稱為Move. 腳本中有一個參數(shù) Target,它的作用是設(shè)置攝像頭旋轉(zhuǎn)移動參照物,這里把一個箱子賦值給了 Target,那么左右滑動屏幕會發(fā)現(xiàn)箱子在旋轉(zhuǎn),兩手縮放屏幕會發(fā)現(xiàn)箱子在放大與縮小。

我們看看Move這條腳本,說明一下幾個重要的 :

這些方法都是系統(tǒng)自己調(diào)用的方法

function Start () : 游戲啟動以后只調(diào)用一次,可用于腳本的初始化操作,

function Update ():Start()方法調(diào)用結(jié)束以后每一幀都會調(diào)用,可以在這里更新游戲邏輯。

function LateUpdate (): Start()方法調(diào)用結(jié)束以后每一幀都會調(diào)用,但是它是在 Update()調(diào)用完后調(diào)用。

Move.js完整代碼

[代碼]js代碼:

001 //用于綁定參照物對象 
002 var target : Transform; 
003 //縮放系數(shù) 
004 var distance = 10.0; 
005 //左右滑動移動速度 
006 var xSpeed = 250.0; 
007 var ySpeed = 120.0; 
008 //縮放限制系數(shù) 
009 var yMinLimit = -20; 
010 var yMaxLimit = 80; 
011 //攝像頭的位置 
012 var x = 0.0; 
013 var y = 0.0; 
014 //記錄上一次手機觸摸位置判斷用戶是在左放大還是縮小手勢 
015 private var oldPosition1 : Vector2; 
016 private var oldPosition2 : Vector2; 
017    
018    
019 //初始化游戲信息設(shè)置 
020 function Start () { 
021     var angles = transform.eulerAngles; 
022     x = angles.y; 
023     y = angles.x; 
024    
025     // Make the rigid body not change rotation 
026     if (rigidbody) 
027         rigidbody.freezeRotation = true; 
028
029    
030    
031 function Update ()  
032
033     //判斷觸摸數(shù)量為單點觸摸 
034     if(Input.touchCount == 1) 
035     { 
036         //觸摸類型為移動觸摸 
037         if(Input.GetTouch(0).phase==TouchPhase.Moved) 
038         { 
039             //根據(jù)觸摸點計算X與Y位置 
040             x += Input.GetAxis("Mouse X") * xSpeed * 0.02; 
041             y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02; 
042                
043         } 
044     } 
045        
046     //判斷觸摸數(shù)量為多點觸摸 
047     if(Input.touchCount >1 ) 
048     { 
049         //前兩只手指觸摸類型都為移動觸摸 
050         if(Input.GetTouch(0).phase==TouchPhase.Moved||Input.GetTouch(1).phase==TouchPhase.Moved) 
051         { 
052                 //計算出當前兩點觸摸點的位置 
053                 var tempPosition1 = Input.GetTouch(0).position; 
054                 var tempPosition2 = Input.GetTouch(1).position; 
055                 //函數(shù)返回真為放大,返回假為縮小 
056                 if(isEnlarge(oldPosition1,oldPosition2,tempPosition1,tempPosition2)) 
057                 { 
058                     //放大系數(shù)超過3以后不允許繼續(xù)放大 
059                     //這里的數(shù)據(jù)是根據(jù)我項目中的模型而調(diào)節(jié)的,大家可以自己任意修改 
060                     if(distance > 3) 
061                     { 
062                         distance -= 0.5;     
063                     }  
064                 }else 
065                 { 
066                     //縮小洗漱返回18.5后不允許繼續(xù)縮小 
067                     //這里的數(shù)據(jù)是根據(jù)我項目中的模型而調(diào)節(jié)的,大家可以自己任意修改 
068                     if(distance < 18.5) 
069                     { 
070                         distance += 0.5; 
071                     } 
072                 } 
073             //備份上一次觸摸點的位置,用于對比 
074             oldPosition1=tempPosition1; 
075             oldPosition2=tempPosition2; 
076         } 
077     } 
078
079    
080    
081    
082 //函數(shù)返回真為放大,返回假為縮小 
083 function isEnlarge(oP1 : Vector2,oP2 : Vector2,nP1 : Vector2,nP2 : Vector2) : boolean 
084
085     //函數(shù)傳入上一次觸摸兩點的位置與本次觸摸兩點的位置計算出用戶的手勢 
086     var leng1 =Mathf.Sqrt((oP1.x-oP2.x)*(oP1.x-oP2.x)+(oP1.y-oP2.y)*(oP1.y-oP2.y)); 
087     var leng2 =Mathf.Sqrt((nP1.x-nP2.x)*(nP1.x-nP2.x)+(nP1.y-nP2.y)*(nP1.y-nP2.y)); 
088     if(leng1<leng2) 
089     { 
090          //放大手勢 
091          return true;  
092     }else 
093     { 
094         //縮小手勢 
095         return false;  
096     } 
097
098    
099 //Update方法一旦調(diào)用結(jié)束以后進入這里算出重置攝像機的位置 
100 function LateUpdate () { 
101       
102     //target為我們綁定的箱子變量,縮放旋轉(zhuǎn)的參照物 
103     if (target) {        
104            
105         //重置攝像機的位置 
106         y = ClampAngle(y, yMinLimit, yMaxLimit); 
107         var rotation = Quaternion.Euler(y, x, 0); 
108         var position = rotation * Vector3(0.0, 0.0, -distance) + target.position; 
109            
110         transform.rotation = rotation; 
111         transform.position = position; 
112     } 
113
114    
115    
116 static function ClampAngle (angle : float, min : float, max : float) { 
117     if (angle < -360) 
118         angle += 360; 
119     if (angle > 360) 
120         angle -= 360; 
121     return Mathf.Clamp (angle, min, max); 
122 }
在Untiy3D 中運行用鼠標手勢點擊上看不到任何效果的,必需在iPhone真機上才可以觸摸感應(yīng)到效果喔 . 嘻嘻~
OK 接下來將Unity3D 導(dǎo)出成Xcode項目,導(dǎo)出的方法有誰還不會??? 我的第一篇文章有說明噢。哇咔咔~~ 然后運行項目只能在真機上運行哦。。 看看我在iPhone 上的截圖。
 

觸摸iPhone屏幕鏡頭旋轉(zhuǎn)與縮放以后的效果,這個圖確實有點不太好截,我一會把項目的源代碼工程下載地址貼上來,方便大家閱讀與學(xué)習(xí),哇咔咔~~

 
 
 鏡頭任意的旋轉(zhuǎn)與縮放,還不錯噢,大家快點來學(xué)習(xí)Unity3D游戲開發(fā)吧,哇咔咔~~
責(zé)任編輯:冰凝兒
相關(guān)推薦

2012-12-24 08:52:44

iOSUnity3D

2012-12-24 08:51:23

iOSUnity3D

2012-12-24 08:40:12

2012-12-24 08:45:19

iOSUnity3D

2012-12-24 09:06:14

iOSUnity3D

2012-12-24 08:57:35

iOSUnity3D

2012-12-24 08:46:50

iOSUnity3D

2012-12-24 08:56:15

iOSUnity3D

2012-12-24 08:59:13

iOSUnity3D

2012-12-24 09:01:41

iOSUnity3D

2012-12-24 08:48:25

iOSUnity3D

2012-12-24 09:04:04

iOSUnity3D

2012-12-24 08:50:21

iOSUnity3D

2012-02-28 14:07:17

Android觸摸屏手勢識別

2012-12-24 09:07:09

iOSUnity3D

2012-12-24 09:02:48

iOSUnity3D

2012-12-24 09:15:57

iOSUnity3D

2012-12-24 09:11:58

iOSUnity3D

2014-04-17 11:05:30

2012-12-24 09:00:31

iOSUnity3D
點贊
收藏

51CTO技術(shù)棧公眾號

欧美日韩精品一区二区三区在线观看| 精品一区二区综合| 日韩av影视综合网| 天天爽人人爽夜夜爽| 免费高清不卡av| 7777精品久久久大香线蕉小说| www国产精品| 色爱av美腿丝袜综合粉嫩av | 91精品黄色片免费大全| 午夜爽爽视频| 一区在线中文字幕| 男人天堂999| 99久久精品费精品国产一区二区| 伊人久久大香线蕉成人综合网| 一本久久综合| 国产日韩一区二区三区| 亚洲成人精选| 亚洲一区二区三区成人在线视频精品| 欧美精品系列| 国产精品一香蕉国产线看观看| 久久99久久人婷婷精品综合 | 全国精品久久少妇| 欧美精品在线一区| 色呦呦在线免费观看| 亚洲精品国产综合区久久久久久久 | 亚洲综合福利| 欧美成人h版在线观看| 亚洲欧美在线综合| 久久国产精品久久久| 最新国产精品精品视频| 97免费在线视频| 亚洲免费福利一区| 91嫩草在线视频| 国产一区二区三区的电影| 欧洲亚洲一区二区| 国产在线视频一区二区三区| 欧美黄网在线观看| 亚洲国产精品99久久久久久久久 | 麻豆精品一区二区综合av| 日韩高清在线播放| 国产一区高清在线| 中文字幕第21页| 国产精品专区免费| 日韩三级高清在线| 亚洲优女在线| 欧美日韩成人精品| 欧美一级精品| 免费不卡亚洲欧美| 粉嫩欧美一区二区三区高清影视| 大j8黑人w巨大888a片| 国产亚洲一区二区三区| 网址你懂得在线观看| 日韩一区二区不卡| 久久天天久久| 国产精品久久久久久久久久久久久久 | 久久久久成人精品免费播放动漫| 另类中文字幕网| www.com毛片| 精品女厕一区二区三区| 午夜av在线播放| 久久亚洲国产成人| 亚洲精品成人无限看| 成人短视频在线看| 亚洲精品乱码久久久久久日本蜜臀| 国产69精品久久app免费版| 国产丝袜视频一区| 精品久久网站| 国产树林野战在线播放| 亚洲欧美激情插| 调教一区二区| 91成人福利在线| 久久久夜精品| 午夜精彩视频| 中文字幕av一区中文字幕天堂 | 正在播放欧美一区| 97在线精品| 日韩精品一区二区三区四| 亚洲免费三区一区二区| 2020av在线| 国产精品久久久久久久久久ktv| 激情深爱一区二区| 你懂的视频在线免费| 中文字幕在线日韩 | 久久国产精品一区| 欧美激情一区二区三区高清视频 | 亚洲午夜国产成人av电影男同| 国产一区二区三区黄网站| 国产欧美日韩综合精品| 丁香另类激情小说| 国产系列在线观看| 久久久久国色av免费观看性色| 校园激情久久| 一线天粉嫩在线播放| 久久精品久久精品亚洲人| 中文在线不卡| 日韩欧美国产精品一区二区三区| 亚洲精品理论电影| 欧美日韩国产一区精品一区| 色噜噜狠狠永久免费| 日韩国产一区三区| 在线精品一区| 又黄又爽无遮挡| 久久av在线看| 成人性视频免费网站| 日本孕妇大胆孕交无码| 国产中文日韩欧美| 中文字幕五月欧美| 99精品在免费线偷拍| 久久久久久久久一区二区| 伊人夜夜躁av伊人久久| 国产精品国产亚洲精品| 成人黄色片免费| 日韩一区国产二区欧美三区| 欧美涩涩网站| 亚洲高清成人影院| 日本成熟性欧美| 中文字幕免费观看一区| 精品视频在线播放一区二区三区 | 思热99re视热频这里只精品| 男人添女人下部高潮视频在观看| 日韩免费在线观看| 亚洲人成免费网站| 美女做a视频| 欧美一区二区视频97| 久久久久久久综合日本| 伦一区二区三区中文字幕v亚洲| 视频一区国产精品| 欧美一区二区视频在线观看2022 | 亚洲精品一区视频| 秋霞av国产精品一区| 国产精品久久久久一区二区三区| 黄色精品视频| 免费看毛片的网址| 538在线视频观看| 日本精品一区二区| 亚洲成人在线免费| 国产精品美女在线播放| 一区二区电影免费观看| 一区二区三区在线观看www| 国产精品无码永久免费888| 国模精品视频| 国产中文字幕二区| 日韩三级电影免费观看| 欧美日韩成人高清| 久久精品卡一| 日日夜夜免费精品| 国产在线观看福利| 久久久国产一区二区三区| www.亚洲国产| 色悠久久久久综合先锋影音下载| 欧美性大战久久久久xxx| 欧美大秀在线观看| 国产精品少妇自拍| 精品一区二区三区中文字幕老牛| 白白色视频在线| 岛国一区二区三区高清视频| 在线亚洲精品福利网址导航| 天堂一区二区在线| 欧美男女交配| 成人中文字幕av| 国产视频观看一区| 欧美日韩一卡二卡三卡| 视频一区视频二区中文| 日韩免费电影| 杨幂毛片午夜性生毛片| 555www成人网| 色婷婷av一区| 久99久精品视频免费观看| 久久久成人av毛片免费观看| 手机在线成人免费视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩免费在线视频| 精品写真视频在线观看| 中文字幕区一区二区三| 外国精品视频在线观看| 一级日韩一区在线观看| 蘑菇福利视频一区播放| 成人私拍视频| caoliu在线| 玛丽玛丽电影原版免费观看1977| 在线电影中文日韩| 一区二区三区国产精品| 久久这里只有| 成人av动漫| 日本www在线观看视频| 成人观看免费完整观看| 91在线短视频| 国产亚洲精品美女久久久| 亚洲综合男人的天堂| 日本女优在线视频一区二区| 中文字幕亚洲在线观看| 欧美黑人激情| 日韩无套无码精品| 欧美精品一区二区三区四区五区| 免费99精品国产自在在线| 欧美另类z0zxhd电影| 国产精品久久久久久一区二区三区 | 久久综合网色—综合色88| 影音先锋亚洲一区| 国产一区二区三区国产精品|