Unity蛮牛教程噩梦射手----代码讲解(1)
?????? 很久沒有寫博客了,因為最近開始學習Unity。在蠻牛教育網上有一套講解Unity官方教程的視頻-------噩夢射手游戲實例,網站為http://www.unitytrain.cn/course/40,是Logic3d老師講解的。游戲本身并不是很復雜,跟著視頻來學習的話困難不打。然而作為程序員來學習這一套視頻,更加關注的是這個游戲的腳本部分。也看到有評論說對代碼部分老師講解并不是很深入,所以我打算開這樣一個新坑--------對該套視頻部分的腳本代碼進行講解。好,那廢話不多說,我們進入正題。
?
?????? 視頻第一課出現(xiàn)的是游戲主角Player的移動腳本,我先上代碼
?
??????代碼開頭定義的變量我們先跳開,來關注特殊的函數(shù)
? FixedUpdate()函數(shù)
?所以我們在這個函數(shù)里面加入我們對鍵盤移動輸入信號的響應事件。??通過GetAxisRaw()來獲取到當前用戶的輸入,在通過Move(),Turning(),Animating()函數(shù)來逐個改變Player的位置Position,旋轉,動畫狀態(tài)Animation。我們來一一解釋。
?
Move()函數(shù):
直接使用Vector3 movement來記錄當前的水平垂直方向的位移值,乘上速度和單位時間,最后賦予Player新的Position實現(xiàn)位置移動。這段代碼不難理解。
注意:這里使用剛體RigidBody來實現(xiàn)位置的轉變。直接使用transfrom.position也是可以的。
?
Turning()函數(shù):
這里涉及到通過光線投影來記錄當前鼠標方向,來實現(xiàn)player視角的旋轉的方法。
首先是
?我們將使用它來記錄我們鼠標和Floor的碰撞,來獲取我們需要的視角,實現(xiàn)旋轉。這里我們需要使用到point屬性。我們下面會講到。
?
其次
這是光線投影碰撞的核心函數(shù)。四個參數(shù)中,后兩個我們在這個腳本的開頭定義一個定義好了。包括射線長度我們定位100,還有碰撞的層蒙版設為Floor。而前兩個參數(shù)則是我們射線的起點和方向。該函數(shù)返回值為true則光線投影反生了碰撞,反之沒有。
如果有碰撞發(fā)生,我們需要計算出新的旋轉方向,并且使用這個方向來實現(xiàn)player視角的變化。這里使用Quaternion四元數(shù)來實現(xiàn)旋轉。
?
最后Animating()函數(shù)
我們檢測當前的水平,垂直速度是否為0,否則就是移動,我們就把角色的狀態(tài)機的參數(shù)進行改變,實現(xiàn)動畫效果。
?
?
------player的運動腳本基本就這些內容了,其他的在蠻牛的課程中也有講解。如果你是直接看這篇博客可能不知所云,請見諒。
總結
以上是生活随笔為你收集整理的Unity蛮牛教程噩梦射手----代码讲解(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学会拐弯,才是人生大智慧(深度好文)
- 下一篇: 程序员最常见的谎话,太准了