最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity3D BEPU 3D定點物理引擎實戰(zhàn)系列 1.5重構(gòu)物理Entity架構(gòu),支持更多的形狀

2022-07-27 09:47 作者:博毅創(chuàng)為  | 我要投稿

1.5重構(gòu)物理Entity架構(gòu),支持更多的形狀

上一節(jié)實戰(zhàn)如何編譯BEPUphysicsint源碼到自己的項目, 如何整合物理引擎與Unity圖形渲染。本節(jié)來從新調(diào)整設(shè)計,讓物理的Entity基本操作與物理的形狀分離,支持更多的物理形狀,支持物理entity與Unity物體位移與旋轉(zhuǎn)同步。主要分成以下3個部分:

1: 設(shè)計PhyBaseEntity,讓所有具體形狀的Entity都繼承自它;

2: 同步物理Entity與Unity節(jié)點的位移與旋轉(zhuǎn);

3: 編寫其它的形狀的物理Entity;

PhyBaseEntity?設(shè)計

上一節(jié)課我們設(shè)計的PhyBoxEntity主要包含了兩個部分,一個是Entity的物理形狀的創(chuàng)建(這個與具體的形狀有關(guān)),一個是物理Entity的基本功能,如位置,旋轉(zhuǎn)同步,給Entity線性速度等。而且其它的形狀的物理Entity,除了形狀創(chuàng)建會不一樣,其它基本一樣,所以我們調(diào)整一下設(shè)計,把PhyBoxEntity與物理形狀相關(guān)的代碼放到PhyBoxEntity里面,與形狀無關(guān)的物理Entity的基本功能,我們放到PhyBaseEntity里面,然后讓具體的形狀在擴展的時候繼承PhyBaseEntity即可。合計架構(gòu)如圖所示:

接下來我們把上一節(jié)課的PhyBoxEntity與形狀無關(guān)的數(shù)據(jù)與功能提取到PhyBaseEntity,PhyBoxEntity只保留形狀相關(guān)的代碼。與形狀無關(guān)的數(shù)據(jù)部分:


phyEntity: 用的是所有Entity形狀的基類,這樣可以指向不同子類的具體實例,其它數(shù)據(jù)都是物理Entity通用的,都寫道PhyBaseEntity里面。

同步物理Entity與Unity節(jié)點的位移與旋轉(zhuǎn)

同時PhyBaseEntity實現(xiàn)了物理Entity與Unity節(jié)點同步的功能增加了位置+旋轉(zhuǎn)。如代碼所示:

接口SyncUnityTransformWithPhyTransform: 從物理Entity同步到Unity節(jié)點

接口SyncPhyTransformWithUnityTransform: 從Unity節(jié)點同步到物理Entity

再來看調(diào)整后的PhyBoxEntity,就很簡單了:


根據(jù)BoxCollider的數(shù)據(jù)創(chuàng)建Box的物理Entity, 同步到Unity節(jié)點的位置與旋轉(zhuǎn),并加入到物理世界。

編寫其它形狀的物理Entity

經(jīng)過上面的調(diào)整以后,我們就很快的編寫其它的形狀,比如實現(xiàn)PhySphereEntity,

繼承自PhyBaseEntity,同時根據(jù)SphereCollider組件來創(chuàng)建形狀。

后續(xù)我們要給物理Entity線性速度,角速度都把接口寫到PhyBaseEntity里面。

今天的物理Entity的設(shè)計調(diào)整就到這里了,關(guān)注我們,可以獲取Unity BEPUphysint3D實戰(zhàn)源碼。

附:視頻教程

Unity幀同步核心技術(shù):3D定點數(shù)物理引擎架構(gòu)實戰(zhàn)www.bycwedu.com/promotion_channels/1454843650?


Unity3D BEPU 3D定點物理引擎實戰(zhàn)系列 1.5重構(gòu)物理Entity架構(gòu),支持更多的形狀的評論 (共 條)

分享到微博請遵守國家法律
电白县| 澄城县| 望奎县| 轮台县| 涪陵区| 定结县| 砀山县| 峨山| 连城县| 永仁县| 手游| 施甸县| 南汇区| 若羌县| 天长市| 右玉县| 遂溪县| 吴忠市| 巴林右旗| 北流市| 吉木乃县| 尼勒克县| 喀喇| 铁岭市| 德安县| 沾化县| 滁州市| 宜章县| 九寨沟县| 双柏县| 射阳县| 米林县| 工布江达县| 洮南市| 平远县| 安康市| 离岛区| 塘沽区| 景宁| 星子县| 武川县|