Unity3D 游戲引擎之控制模型移動旋轉(zhuǎn)與碰撞 上一章介紹了模型的旋轉(zhuǎn)與平移,本章介紹一些好玩的,通過按鈕來控制模型的移動與鏡頭的跟隨,腳本參數(shù)的傳遞。個人覺得Unity3D 這套游戲引擎真的很棒,它可以為開發(fā)者節(jié)省時間。用更多少的腳本,可以實現(xiàn)更多的功能。先贊一下,哇咔咔~廢話不多說了,入正題! 首先在3D世界中創(chuàng)建一個箱子模型,然后添加一個腳本,命名為 js0綁定到這個箱子中。在添加一個腳本,命名為js1 ,同樣綁定到這個箱子上,用來實現(xiàn)對象的創(chuàng)建與調(diào)用方法參數(shù)的傳遞 ~ var Control; 這里聲明一個控制類的對象,用來進行參數(shù)的傳遞,調(diào)用方法。 Getomponent(js1): 得到腳本名稱為js1的對象,這里把值賦給Control,就可以使用js1腳本中的方法了,下面的代碼中通過這個對象調(diào)用模型的移動方法。 Input.GetKey(KeyCode): 這個方法返回一個Bool 判斷當前按鍵是否被按下,當然這里只能運行在PC上才可以感應(yīng)按鈕,因為IOS的設(shè)備上沒有按鍵,以后我會介紹在IOS上添加游戲搖桿的功能,本章我們先學習一下PC上的基本按鈕響應(yīng)。 下面代碼 實現(xiàn)按下“W”控制物體向前 實現(xiàn)按下“S”控制物體向后 實現(xiàn)按下“A”控制物體向左平移 實現(xiàn)按下“D”控制物體向右平移 實現(xiàn)按下“Q”控制物體向左旋轉(zhuǎn) 實現(xiàn)按下“E”控制物體向右旋轉(zhuǎn) js0.js 代碼
js1.js 代碼 參數(shù)的傳遞可以使用obj進行傳遞,代碼中我將旋轉(zhuǎn)的角度做為參數(shù)傳遞到了js1.js中控制模型旋轉(zhuǎn)。 Vector3 標示一個3D的向量單位,它可以標示模型的三個方向,這里根據(jù)旋轉(zhuǎn)的角度與移動的向量設(shè)置它。
OK點擊運行,通過按鍵我們可以正常的控制模型平移與旋轉(zhuǎn),但是現(xiàn)在有兩個問題 1, 主攝像機不能跟隨控制模型, 2 、模型可以橫穿過山丘,感覺很假。下面我們解決這兩個問題。 在Unity3D標準資源的腳本中系統(tǒng)幫我們寫好了跟隨腳本.如下圖所示,點擊Import Package - > Scripts 將系統(tǒng)腳本導入。 選中攝像機 點擊Component - > Camera-Control - > Smoot Follow ,給主攝像機添加一個跟隨腳本。 跟隨腳本添加完以后,須要指定一個跟隨的物體,下面紅框內(nèi)將跟隨的物體Cube拖動進來,這里Cube就是我們上面控制的模型,那么這樣,攝像機將會一直在身后跟隨我們控制的模型。下面是一些跟隨的參數(shù),設(shè)置 跟隨的距離 高度等等,盆友們手動的修改一下運行游戲就可以看出來變化,。 控制物體的碰撞可以使用 選中模型, Component - > Physics - > Rigidbody 設(shè)置這個模型的重力碰撞。那么這樣你控制的模型就不會穿過山丘,而是感應(yīng)重力碰撞。 點擊運行游戲,看看效果,控制箱子行走的同時,我們可以清晰的看出旁邊的樹木被物理碰撞所干擾,前后,左右,旋轉(zhuǎn) 完全OK .大家快試試吧。哇咔咔~~ 明天開始MOMO又要開始處理一部分iPhone 的界面圖形化開發(fā),Tomorrow is another day ,加油哇咔咔~ Unity3D 的世界中腳本還可以做很多事情,以后我在慢慢向各位道來~ 歡迎各位盆友可以和MOMO一起討論Unity3D游戲開發(fā),哇咔咔~~~ 本文出自 “雨松MOMO的程序世界” 博客,請務(wù)必保留此出處http://xys289187120.blog.51cto.com/3361352/696792 |
|