国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

這篇具有很好參考價(jià)值的文章主要介紹了Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.類的設(shè)計(jì)方法 --- 首先將不同的對(duì)象相同的行為和方法做到一個(gè)類A中,然后再給每個(gè)對(duì)象各創(chuàng)建一個(gè)類,并且都繼承大類A,同時(shí)在自己的類中創(chuàng)建自己獨(dú)有的方法或者屬性Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

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)用Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

1.目前我們掌握的獲取游戲資源的方式有兩招:

a.創(chuàng)建一個(gè)公開變量,然后將與變量類型相對(duì)應(yīng)的游戲資源拖到Inepector界面處為對(duì)應(yīng)公開變量生成的賦值框

b.上面這種方式需要人手動(dòng)操作,很不方便,因此我們可以升級(jí)為通過代碼來查找和載入游戲資源

Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material?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類)

?Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

?1.資源路徑示例 --- 如EffectsEnemy的資源路徑是:ContactEffects\EffectsEnemy --- 由于資源一定要在Resource文件夾下,所以Resource不需要寫入目錄


介紹一下 --- 物理材質(zhì) --- Physics Metarial?

1.創(chuàng)建了物理材質(zhì)之后,會(huì)出現(xiàn)上面這么幾個(gè)屬性 --- 由上到下分別是:動(dòng)態(tài)摩擦力,靜態(tài)摩擦力,彈力,摩擦力合并,彈力合并。Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

2.這兩個(gè)屬性的取值的意思如下:(以Bounce Combine為例)

當(dāng)兩個(gè)物體相互接觸時(shí),物體受到的彈力 =?Bounce Combine --- 若為Average則表示兩個(gè)物體的彈力平均,Min就是選彈力最小的游戲物體,Multiply指受到的彈力等于二者的彈力相乘,Max則是受到的彈力是二者之間彈力的最大值

(Fiction Combine同理)Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

Physics Material 物理材質(zhì)屬性位于Coliider碰撞器組件處?

1.由于用觸發(fā)器作判定會(huì)比較消耗性能,我們一般不會(huì)隨便用觸發(fā)器來作判定,適用的場景一般有:a.觸發(fā)范圍的圖形比較難用代碼來形容(不好用距離來進(jìn)行判定),此時(shí)直接用觸發(fā)器做個(gè)觸發(fā)范圍圖形,直接用判定就可以了

(PS:通常用來代替觸發(fā)器判定的是兩個(gè)游戲物體之間的距離判定)

Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

1.this.transform.forward獲取的是一個(gè)向量 --- 這個(gè)向量是位于世界坐標(biāo)系的 ,向量的方向與游戲物體自身坐標(biāo)系的Z軸正反向一致,向量的起點(diǎn)為世界坐標(biāo)系的原點(diǎn),向量的大小為1Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

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)限的)

Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

這段代碼是指這個(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ì)象集Unity --- 槍類與子彈類的設(shè)計(jì)初探 與 Physics Material

2.補(bǔ)充射線檢測(cè)方法的一個(gè)參數(shù) --- 這個(gè)參數(shù)的類型是?-- L ayerMask

這個(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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity 3D子彈發(fā)射制作

    Unity 3D子彈發(fā)射制作

    1.導(dǎo)入一個(gè)槍的模型,調(diào)整好槍的位置 2.點(diǎn)擊ScifiRifle(槍)右鍵創(chuàng)建一個(gè)Crete Empty(空的物體)命名fireponint代表子彈生成的位置 3.?制作一個(gè)簡易的子彈,右鍵3D?object→spher這里我們選用spher將其命名為bulletpoint放到合適的位置 4.編寫子彈發(fā)射腳本?點(diǎn)擊Add Component→Guncontral在Asset

    2024年02月03日
    瀏覽(25)
  • Unity Physics.SphereCast的理解

    Unity Physics.SphereCast的理解

    測(cè)試結(jié)果如下 白色圓柱+右側(cè)半圓則為射線檢測(cè)的范圍

    2024年02月02日
    瀏覽(21)
  • C++初階--類與對(duì)象--const成員和日期類的實(shí)現(xiàn)

    C++初階--類與對(duì)象--const成員和日期類的實(shí)現(xiàn)

    將const修飾的成員函數(shù)稱之為const成員函數(shù)。 在一個(gè)成員函數(shù)里面,對(duì)于this指針指向的對(duì)象,是隱藏式的,沒有辦法用常規(guī)的方法去修飾它,所以我們是這樣進(jìn)行修飾的: 注意事項(xiàng): date.h date.cpp 這里采用多文件編程的方式,所以在date.cpp中,是在Date類外使用的,需要加上作

    2024年02月05日
    瀏覽(31)
  • Unity中Physics.Raycast 的使用

    Unity中Physics.Raycast 的使用

    Physics.Raycast?官方文檔中提供的參數(shù)如下?? ?Physics.Raycast?從指定的位置發(fā)射一條射線,如果射線與物體發(fā)生碰撞返回true否則返回false 其中射線的起點(diǎn),方向是不可以省略的,其他參數(shù)可以省略 案例▼ 第1,2個(gè)參數(shù)定義了一條射線的起點(diǎn)與方向 第3個(gè)參數(shù)為RaycastHi用以從射線獲

    2024年02月08日
    瀏覽(21)
  • Unity 實(shí)現(xiàn)簡單的發(fā)射子彈功能

    Unity 實(shí)現(xiàn)簡單的發(fā)射子彈功能

    前言:對(duì)于射擊類游戲,相信大家并不陌生。那么想要實(shí)現(xiàn)這一功能,我們通常會(huì)使用兩種方法: 1.射線追蹤。? 2.子彈實(shí)例化。 今天,我們就通過第二種方式去實(shí)現(xiàn)發(fā)射的功能。 一、首先,我們準(zhǔn)備好一把槍的模型,將其放到場景中,調(diào)整好位置。 ?二、 我們?cè)跇尶谇懊?/p>

    2024年02月11日
    瀏覽(97)
  • Unity 之`Physics.Raycast()`方法,射線檢測(cè)

    Unity 之`Physics.Raycast()`方法,射線檢測(cè)

    當(dāng)你在Unity中使用 Physics.Raycast() 方法時(shí),你實(shí)際上是在進(jìn)行一種射線檢測(cè),以查看一條射線是否與場景中的碰撞體相交。這可以用來實(shí)現(xiàn)很多不同的功能,如點(diǎn)擊選擇物體、射擊命中檢測(cè)等。以下是 Physics.Raycast() 方法的詳細(xì)介紹: 參數(shù)解釋: origin :射線的起點(diǎn)(3D世界坐標(biāo)

    2024年02月11日
    瀏覽(34)
  • <c++> 類的繼承 | 基類與派生類 | 構(gòu)造函數(shù)與析構(gòu)函數(shù)

    <c++> 類的繼承 | 基類與派生類 | 構(gòu)造函數(shù)與析構(gòu)函數(shù)

    ?? 個(gè)人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 從零開始的 c++ 之旅 ?? 若有幫助,還請(qǐng) 關(guān)注?點(diǎn)贊?收藏 ,不行的話我再努努力?????? c++ 面向?qū)ο笕筇匦裕?封裝,繼承,多態(tài) 。通過本文我們將了解什么是類的

    2023年04月20日
    瀏覽(22)
  • Unity中玩家的攻擊(發(fā)射子彈,揮劍)

    Unity中玩家的攻擊(發(fā)射子彈,揮劍)

    目前來說,我就知道玩家兩種攻擊方式,1.發(fā)射(子彈,弓箭),2.揮劍 1.發(fā)射子彈 想要玩家發(fā)射子彈,需要制作兩個(gè)部分(玩家發(fā)射動(dòng)畫除外),第一個(gè)部分就是控制玩家的腳本,第二部分則是子彈部分,子彈部分需要將子彈做成預(yù)制件的形式。 制作思路:1.首先先把子彈

    2023年04月09日
    瀏覽(18)
  • 進(jìn)階JAVA篇- LocalDate 類與 LocalTime 類、LocalDateTime 類的常用API(六)

    進(jìn)階JAVA篇- LocalDate 類與 LocalTime 類、LocalDateTime 類的常用API(六)

    目錄 API? ? ? ? ? ? ? ? ? ? ? 1.0?LocalDate 類與 LocalTime 類、LocalDateTime 類的API說明 ????????1.1?如何 創(chuàng)建 LocalDate 類與 LocalTime 類、LocalDateTime 類的對(duì)象 ????????1.2?LocalDate 類與 LocalTime 類、LocalDateTime 類中的以 ?get 開頭實(shí)例方法 ????????1.3?LocalDateTime 類中的 toL

    2024年02月08日
    瀏覽(20)
  • 關(guān)于Unity Physics.CheckBox的使用方法

    關(guān)于Unity Physics.CheckBox的使用方法

    在UnityAPI手冊(cè)中Physics.CheckBox是Unity Physics類中的一個(gè)方法,該方法擁有四個(gè)重載,用于檢查給定的盒體是否與其他碰撞體重疊。 public static bool CheckBox (Vector3 center, Vector3 halfExtents, Quaternion orientation= Quaternion.identity, int layermask= DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteracti

    2024年01月21日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包