Unity3D 遊戲引擎之實現平面多點觸摸(二)

Unity遊戲引擎之實現平面多點觸摸





雨松MOMO原創文章如轉載,請註明:轉載至我的獨立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/466




在上一章中已經介紹了Unity for 3D 遊戲引擎的構建,從本章以後我將帶領大小盆友們一起更進一步的學習Unity遊戲引擎。先從Unity平面開始,本章介紹Unity 平面上的多點觸摸。


點擊File->New Project 創建一個工程,可以使用默認 或者 名稱隨便起一起即可。點擊繼續完成創建工程。

 

 

 


 

 

Scene:遊戲場景視圖,這裏面可以擺放任意場景模型。

Camera Preview:攝像頭正對方向屏幕顯示內容

MainCamera:創建工程後默認會添加遊戲的主攝像頭,在場景視圖中我們可以看見 MainCamera在三維座標系中的位置。

 

 


 

 

我們今天的目標實際上就是讓攝像頭正對一個平面,在這個平面中實現多點觸摸。

下面介紹一下腳本的使用,爲了讓攝像頭顯示我們須要給主攝像頭綁定腳本,如下圖所示,點擊紅框內的Create 出現下拉列表,先創建兩個文件夾,Image用來存放圖片,Scripts用來存放腳本。 因爲iPhone 4 的分辨率是960x640 所以找到一張 960x640的圖片做爲屏幕背景圖,然後在找一張小一點的圖片做爲觸摸後在屏幕中顯示的圖片。

 

 


 

 Unity支持三種的腳本分別是javascript,C# Script,Boo Script, 官方推薦使用javascript來編寫,所以我們也就用javascript。


創建一個腳本名稱爲menu.js,聲明瞭兩個變量 imageMenu 與 imageItem 來儲存遊戲背景顯示與遊戲觸摸顯示的紋理圖片。

function OnGUI () : 這個方法用來通知屏幕繪製。

DrawTexture: 繪製紋理。

Label:繪製一個文本。

iPhoneInput.touchCount :得到多點觸摸的數量。

iPhoneInput.GetTouch(i).position: 得到循環中每一個多點觸摸的位置。

iPos.x : 觸摸的x座標

iPos.y : 觸摸的y座標(左上角爲00點的Y座標)

GUI.DrawTexture(Rect(x,960 - y ,120,120),imageItem);

960 - y : 因爲取得的y座標是左上角00點的座標,而Unity繪製是以左下角爲00點的座標,不處理直接用y的話座標就是一個反的,所以這裏用 iPhone 4的 高度 960  減去 當前觸摸的Y 就算出觸摸正確的顯示座標。

 

var imageMenu :Texture2D;

var imageItem :Texture2D;

function OnGUI () {

	GUI.DrawTexture(Rect(0,0,640,960),imageMenu);
  
     var touchCount = iPhoneInput.touchCount;
     for(var i = 0; i < touchCount; i++)
     {
     	var iPos = iPhoneInput.GetTouch(i).position;
     	var x = iPos.x;
     	var y = iPos.y;
     	
  	    GUI.DrawTexture(Rect(x,960 - y ,120,120),imageItem);
  	    
  	    GUI.Label(Rect(x, 960 - y,120,120),"Touch position is  " + iPos);
     }


}

 

 

腳本已經添加完畢,接下來是綁定變量。

先將menu.js拖拽到Maincamera中,可以看到右下角紅框中出現兩個沒有賦值的變量 ImageMenu 與ImageItem ,因爲上面腳本中聲明瞭這兩個變量,這裏就會出現。在這裏須要對這兩個變量賦值。然後拖拽圖片放入爲其賦值。

 

 

 


 

OK 接下來就是build and run ,具體方法見上一章,這裏就不羅嗦了。 我們看看運行在iPhone上的真機效果圖。

 

因爲Unity3D for iPhone 只支持 5點觸摸,所以我將5根手指頭放入iPhone 4中 圖中清楚的記錄我的5根手指頭所在屏幕中的位置,以及正確的貼上了須要顯示的圖片。

 

 

 


 

哇咔咔~~同樣也希望各位技術達人可以和MOMO一起進行交流~~ 一起進步喔~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章