新聞中心
在上一章中已經(jīng)介紹了Unity for 3D 游戲引擎的構(gòu)建,從本章以后我將帶領(lǐng)大小盆友們一起更進(jìn)一步的學(xué)習(xí)Unity游戲引擎。先從Unity平面開始,本章介紹Unity 平面上的多點(diǎn)觸摸。

成都創(chuàng)新互聯(lián)是專業(yè)的大英網(wǎng)站建設(shè)公司,大英接單;提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大英網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
點(diǎn)擊File->New Project 創(chuàng)建一個工程,可以使用默認(rèn) 或者 名稱隨便起一起即可。點(diǎn)擊繼續(xù)完成創(chuàng)建工程。
Scene:游戲場景視圖,這里面可以擺放任意場景模型。
Camera Preview:攝像頭正對方向屏幕顯示內(nèi)容
MainCamera:創(chuàng)建工程后默認(rèn)會添加游戲的主攝像頭,在場景視圖中我們可以看見 MainCamera在三維坐標(biāo)系中的位置。
我們今天的目標(biāo)實際上就是讓攝像頭正對一個平面,在這個平面中實現(xiàn)多點(diǎn)觸摸
下面介紹一下腳本的使用,為了讓攝像頭顯示我們須要給主攝像頭綁定腳本,如下圖所示,點(diǎn)擊紅框內(nèi)的Create 出現(xiàn)下拉列表,先創(chuàng)建兩個文件夾,Image用來存放圖片,Scripts用來存放腳本。 因為iPhone 4 的分辨率是960x640 所以找到一張 960x640的圖片做為屏幕背景圖,然后在找一張小一點(diǎn)的圖片做為觸摸后在屏幕中顯示的圖片。
Unity支持三種的腳本分別是javascript,C# Script,Boo Script, 官方推薦使用javascript來編寫,所以我們也就用javascript。
創(chuàng)建一個腳本名稱為menu.js,聲明了兩個變量 imageMenu 與 imageItem 來儲存游戲背景顯示與游戲觸摸顯示的紋理圖片。
function OnGUI () : 這個方法用來通知屏幕繪制。
DrawTexture: 繪制紋理。
Label:繪制一個文本。
iPhoneInput.touchCount :得到多點(diǎn)觸摸的數(shù)量。
iPhoneInput.GetTouch(i).position: 得到循環(huán)中每一個多點(diǎn)觸摸的位置。
iPos.x : 觸摸的x坐標(biāo)
iPos.y : 觸摸的y坐標(biāo)(左上角為00點(diǎn)的Y坐標(biāo))
GUI.DrawTexture(Rect(x,960 - y ,120,120),imageItem);
960 - y : 因為取得的y坐標(biāo)是左上角00點(diǎn)的坐標(biāo),而Unity繪制是以左下角為00點(diǎn)的坐標(biāo),不處理直接用y的話坐標(biāo)就是一個反的,所以這里用 iPhone 4的 高度 960 減去 當(dāng)前觸摸的Y 就算出觸摸正確的顯示坐標(biāo)。
[代碼]c#/cpp/oc代碼:
| 01 | var imageMenu :Texture2D; |
| 02 |
| 03 | var imageItem :Texture2D; |
| 04 |
| 05 | function OnGUI () { |
| 06 |
| 07 | GUI.DrawTexture(Rect(0,0,640,960),imageMenu); |
| 08 |
| 09 | var touchCount = iPhoneInput.touchCount; |
| 10 | for(var i = 0; i < touchCount; i++) |
| 11 | { |
| 12 | var iPos = iPhoneInput.GetTouch(i).position; |
| 13 | var x = iPos.x; |
| 14 | var y = iPos.y; |
| 15 |
| 16 | GUI.DrawTexture(Rect(x,960 - y ,120,120),imageItem); |
| 17 |
| 18 | GUI.Label(Rect(x, 960 - y,120,120),"Touch position is " + iPos); |
| 19 | } |
| 20 |
| 21 |
| 22 | } |
腳本已經(jīng)添加完畢,接下來是綁定變量。
先將menu.js拖拽到Maincamera中,可以看到右下角紅框中出現(xiàn)兩個沒有賦值的變量 ImageMenu 與ImageItem ,因為上面腳本中聲明了這兩個變量,這里就會出現(xiàn)。在這里須要對這兩個變量賦值。然后拖拽圖片放入為其賦值。
OK 接下來就是build and run ,具體方法見上一章,這里就不羅嗦了。 我們看看運(yùn)行在iPhone上的真機(jī)效果圖。
因為Unity3D for iPhone 只支持 5點(diǎn)觸摸,所以我將5根手指頭放入iPhone 4中 圖中清楚的記錄我的5根手指頭所在屏幕中的位置,以及正確的貼上了須要顯示的圖片。
本文名稱:Unity3D游戲引擎之實現(xiàn)平面多點(diǎn)觸摸
鏈接URL:http://m.fisionsoft.com.cn/article/coedcjo.html


咨詢
建站咨詢
