1.類的設(shè)計(jì)方法 --- 首先將不同的對(duì)象相同的行為和方法做到一個(gè)類A中,然后再給每個(gè)對(duì)象各創(chuàng)建一個(gè)類,并且都繼承大類A,同時(shí)在自己的類中創(chuàng)建自己獨(dú)有的方法或者屬性
1.一般子彈的射擊都是用射線檢測(cè)的方式去做的 --- 用碰撞器會(huì)出現(xiàn)我們不想要的物理效果,用觸發(fā)器的話子彈速度過快會(huì)導(dǎo)致觸發(fā)失效的問題
2.如果想讓滿足分部位造成不同傷害的話,就需要給被傷害對(duì)象的每個(gè)部位都套一個(gè)對(duì)應(yīng)的碰撞器,某一個(gè)部位檢測(cè)到碰撞了就讓這個(gè)部位調(diào)用對(duì)應(yīng)的碰撞方法造成不同的傷害。
3.給不同的部位加碰撞器也是有講究的:
一個(gè)游戲模型是由不同部位的子物體組成的,當(dāng)我們要添加碰撞器時(shí),需要做的就是給這些代表不同部位的子物體再添加一個(gè)空子物體,這個(gè)空子物體中只有兩個(gè)組件 ---Transfrom表示位置,以及Collider --- 最關(guān)鍵的碰撞器
這種做法就能夠保證當(dāng)代表不同部位的子物體運(yùn)動(dòng)起來時(shí),作為這些子物體的子物體的“碰撞器”也會(huì)跟著一起運(yùn)動(dòng)。
4.一個(gè)類為子類,它里面有一個(gè)方法從返回類型,函數(shù)名到函數(shù)參數(shù)都與父類相同,此時(shí)通過子類中對(duì)象調(diào)用該方法,那么應(yīng)該執(zhí)行的是子類中該方法還是子類繼承的父類方法呢?
答:會(huì)優(yōu)先執(zhí)行子類中該方法
5.public --- 大家都能調(diào)用,protected --- 自己和自己的子類能調(diào)用(父類不可以),private --- 只有自己能調(diào)用
1.目前我們掌握的獲取游戲資源的方式有兩招:
a.創(chuàng)建一個(gè)公開變量,然后將與變量類型相對(duì)應(yīng)的游戲資源拖到Inepector界面處為對(duì)應(yīng)公開變量生成的賦值框
b.上面這種方式需要人手動(dòng)操作,很不方便,因此我們可以升級(jí)為通過代碼來查找和載入游戲資源
?2.Resource類中有一個(gè)方法 --- Load載入方法 --- 方尖框內(nèi)放資源的類型,括號(hào)內(nèi)傳資源的路徑 --- 目錄1\目錄2\...\資源名稱(PS:還有一個(gè)前提還是資源必須放在Resource文件夾下,也正是因?yàn)檫@個(gè)規(guī)定,所以Resource不用寫入目錄中)?--- 方法會(huì)返回我們想找的游戲資源對(duì)象,此時(shí)我們需要將其傳給對(duì)應(yīng)的引用,用引用來管理游戲資源(PS:此時(shí)只是找到了游戲資源!并沒有在游戲場景中創(chuàng)建它)
3.如果想要在游戲場景中創(chuàng)建游戲資源的話還需要調(diào)用 ---- Instantiate()方法 --- 參數(shù)是我們要?jiǎng)?chuàng)建的游戲資源(必須是GameObject類)
?
?1.資源路徑示例 --- 如EffectsEnemy的資源路徑是:ContactEffects\EffectsEnemy --- 由于資源一定要在Resource文件夾下,所以Resource不需要寫入目錄
介紹一下 --- 物理材質(zhì) --- Physics Metarial?
1.創(chuàng)建了物理材質(zhì)之后,會(huì)出現(xiàn)上面這么幾個(gè)屬性 --- 由上到下分別是:動(dòng)態(tài)摩擦力,靜態(tài)摩擦力,彈力,摩擦力合并,彈力合并。
2.這兩個(gè)屬性的取值的意思如下:(以Bounce Combine為例)
當(dāng)兩個(gè)物體相互接觸時(shí),物體受到的彈力 =?Bounce Combine --- 若為Average則表示兩個(gè)物體的彈力平均,Min就是選彈力最小的游戲物體,Multiply指受到的彈力等于二者的彈力相乘,Max則是受到的彈力是二者之間彈力的最大值
(Fiction Combine同理)
Physics Material 物理材質(zhì)屬性位于Coliider碰撞器組件處?
1.由于用觸發(fā)器作判定會(huì)比較消耗性能,我們一般不會(huì)隨便用觸發(fā)器來作判定,適用的場景一般有:a.觸發(fā)范圍的圖形比較難用代碼來形容(不好用距離來進(jìn)行判定),此時(shí)直接用觸發(fā)器做個(gè)觸發(fā)范圍圖形,直接用判定就可以了
(PS:通常用來代替觸發(fā)器判定的是兩個(gè)游戲物體之間的距離判定)
1.this.transform.forward獲取的是一個(gè)向量 --- 這個(gè)向量是位于世界坐標(biāo)系的 ,向量的方向與游戲物體自身坐標(biāo)系的Z軸正反向一致,向量的起點(diǎn)為世界坐標(biāo)系的原點(diǎn),向量的大小為1
1.如果說通過一個(gè)類創(chuàng)建的對(duì)象在游戲中只有一個(gè),且這個(gè)對(duì)象經(jīng)常會(huì)被其他的對(duì)象調(diào)用的話,我們可以通過 ---- 直接在類中提供類的對(duì)象引用來提高代碼的簡潔和易讀性
具體的方法如上:
a.在類中創(chuàng)建一個(gè)具有公開權(quán)限的,該類的靜態(tài)屬性 (PS:屬性的get 和 set也是能夠設(shè)置訪問權(quán)限的)
這段代碼是指這個(gè)屬性是大家都可以讀取,但是只有類內(nèi)部自己可以設(shè)置的,如果想要在外部進(jìn)行設(shè)置的話,需要我們提供公開的接口方法
(1.創(chuàng)建一個(gè)類的對(duì)象 --- 調(diào)用構(gòu)造函數(shù) --- 構(gòu)造函數(shù)的函數(shù)名為類名 ---一般都是通過引用來管理對(duì)象 --- 如 Play me(創(chuàng)建引用) = new Play() (創(chuàng)建對(duì)象的同時(shí)將對(duì)象賦值給引用))
b.創(chuàng)建了類的對(duì)象后,將對(duì)象賦值給靜態(tài)引用進(jìn)行管理
通過上面這一操作能夠?qū)崿F(xiàn)的好處:可以直接通過類名加靜態(tài)引用來訪問到這個(gè)唯一對(duì)象的各種屬性和方法,而不需要去查找到這個(gè)對(duì)象,然后再創(chuàng)建個(gè)引用指向它,然后再通過引用來調(diào)用屬性和方法。
節(jié)省了很多的不必要操作。只有一個(gè)對(duì)象,那就提前創(chuàng)建好引用,然后所有人只找這個(gè)引用,不需要自己再創(chuàng)建引用去找對(duì)象,豈不美哉
1.一個(gè)個(gè)腳本/組件就相當(dāng)于一個(gè)個(gè)類,一個(gè)新創(chuàng)建的,空的游戲物體就相當(dāng)于一個(gè)空對(duì)象集
2.補(bǔ)充射線檢測(cè)方法的一個(gè)參數(shù) --- 這個(gè)參數(shù)的類型是?-- L ayerMask文章來源:http://www.zghlxwxcb.cn/news/detail-420440.html
這個(gè)參數(shù)決定了射線能夠在哪一個(gè)層中進(jìn)行檢測(cè)文章來源地址http://www.zghlxwxcb.cn/news/detail-420440.html
到了這里,關(guān)于Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!