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

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

[學(xué)習(xí)筆記][翻譯搬運]Unity Dots ECS 1.0 github 入門教程

2022-10-30 16:36 作者:白白_可樂  | 我要投稿

https://github.com/Unity-Technologies/EntityComponentSystemSamples/blob/master/DOTS_Guide/ecs_tutorial/README.md

上面是1.0版本入門教程的對應(yīng)鏈接,原文是英文,我使用 Chrome 瀏覽器的插件翻譯為了中文,因此在接下來的截圖畫面中將出現(xiàn)中文.

原文使用的 Unity 版本是2022.2.0b8,不過在我下載2022版本的時候已經(jīng)更新到2022.2.0b10,也是本文使用的 Unity 版本.

本文將主要記錄個人在閱讀學(xué)習(xí)該文章時遇到的問題及心得體會.

不是很建議用2022.2.0b10這個版本,我過程中經(jīng)??ㄋ?

(還會盜一些教程里面的圖哈哈)


在跟隨原文創(chuàng)建了一個 3D URP 模板的項目后,開局就彈了一個 URP 材質(zhì)需要升級的窗口,我們直接升級就是了.

URP版本過低

接下來是安裝 DOTS 包,這一步可能會出現(xiàn)網(wǎng)絡(luò)問題,建議刷新或者切換網(wǎng)絡(luò)環(huán)境.

接下來進入?Edit > Project Settings > Editor 勾選?Enter Play Mode Options


然后創(chuàng)建一系列文件夾:

調(diào)整設(shè)置:

創(chuàng)建場景

創(chuàng)建子場景,命名為?EntityScene:

太長懶得打字,直接截圖了:

移除創(chuàng)建時附帶的碰撞體(Collider).

炮塔旋轉(zhuǎn)

接下來在“Scripts/Systems”文件夾中創(chuàng)建一個名為“TurretRotationSystem.cs”的新文件,復(fù)制代碼:

保存,等待代碼編譯完成,然后 Run 一下:

原文在此處有個筆記:

簡單翻譯一下就是說上文代碼中的 foreach 會旋轉(zhuǎn)所有帶 transform 的東西,我們需要修改代碼以確保代碼僅影響 Turret 這個物體.

退出播放模式

啊我在這兒直接卡了

強退進程重來,這個故事告訴我們一定要勤按 Ctrl+S

在“Scripts/Components”文件夾中創(chuàng)建一個名為“Turret.cs”的新C#源文件,將以下內(nèi)容放入其中:


在“Scripts/Authoring”文件夾中創(chuàng)建一個名為“TurretAuthoring.cs”的新C#源文件,將以下內(nèi)容放入其中:



重建了下Library文件夾,勉強解決了無限Hold on.

我們繼續(xù).

將“TurretAuthoring”組件添加到“Turret”游戲?qū)ο笾?,方法是?TurretAuthoring.cs 文件拖放到 Turret GameObject 上,或者使用游戲?qū)ο髾z查器中的“添加組件”按鈕并找到“Turret Authoring”。


修改文件夾“Scripts/Systems”中名為“TurretRotationSystem.cs”的文件內(nèi)容如下:

再次運行:

退出播放模式

坦克移動

在“Scripts/Components”文件夾中創(chuàng)建一個名為“Tank.cs”的新C#源文件,將以下內(nèi)容放入其中:

在“Scripts/Authoring”文件夾中創(chuàng)建一個名為“TankAuthoring.cs”的新C#源文件,將以下內(nèi)容放入其中:

將“TankAuthoring”組件添加到“Tank”游戲?qū)ο?

在“Scripts/Systems”文件夾中創(chuàng)建一個名為“TankMovementSystem.cs”的新C#源文件,將以下內(nèi)容放入其中:


Run!

制作炮彈

在“Scripts/Components”文件夾中創(chuàng)建一個名為“CannonBall.cs”的新C#源文件,將以下內(nèi)容放入其中:

在“Scripts/Authoring”文件夾中創(chuàng)建一個名為“CannonBallAuthoring.cs”的新C#源文件,將以下內(nèi)容放入其中:

在 Hierarchy 窗口中右鍵單擊“SampleScene”,選擇GameObject > 3D Object > Sphere并將新的 GameObject 命名為“CannonBall”。將其位置設(shè)置為 (0,0,0),旋轉(zhuǎn)設(shè)置為 (0,0,0),縮放設(shè)置為 (0.2,0.2,0.2).

將“CannonBallAuthoring”組件添加到“CannonBall”游戲?qū)ο?

從“CannonBall”游戲?qū)ο笾幸瞥癝phere Collider”組件.

將“CannonBall”游戲?qū)ο笸戏诺巾椖看翱谥械摹癙refabs”文件夾中.

從“SampleScene”中刪除“CannonBall”游戲?qū)ο螅ìF(xiàn)在是一個預(yù)制體實例).


修改文件夾“Scripts/Components”中名為“Turret.cs”的文件內(nèi)容如下:



修改文件夾“Scripts/Authoring”中名為“TurretAuthoring.cs”的文件內(nèi)容如下:


選擇“Turret”游戲?qū)ο?,并將“Turret Authoring”組件的新字段“CannonBallPrefab”和“CannonBallSpawn”分別設(shè)置到Project文件夾中的“CannonBall”預(yù)制件(拖放)和“SpawnPoint”游戲?qū)ο螅◤腍ierarchy窗口拖放)


在“Scripts/Aspects”文件夾中創(chuàng)建一個名為“TurretAspect.cs”的新C#源文件,將以下內(nèi)容放入其中:

在“Scripts/Systems”文件夾中新建一個名為“TurretShootingSystem.cs”的C#源文件,將以下內(nèi)容放入其中:


Run!

炮彈移動

在“Scripts/Aspects”文件夾中創(chuàng)建一個名為“CannonBallAspect.cs”的新C#源文件,將以下內(nèi)容放入其中:

進入游戲模式,炮彈現(xiàn)在正在遠離坦克并在地面上彈跳:


放置多個坦克

將“坦克”游戲?qū)ο髲摹癊ntityScene”拖放到項目窗口中的“Assets/Prefabs”文件夾中.

從“EntityScene”中刪除“Tank”游戲?qū)ο螅ìF(xiàn)在是一個預(yù)制體實例).

在“Scripts/Components”文件夾中創(chuàng)建一個名為“Config.cs”的新C#源文件,將以下內(nèi)容放入其中:


在“Scripts/Authoring”文件夾中創(chuàng)建一個名為“ConfigAuthoring.cs”的新C#源文件,將以下內(nèi)容放入其中:

在 Hierarchy 窗口中右鍵單擊“EntityScene”,選擇Create Empty并將新的 GameObject 命名為“Config”.

將“ConfigAuthoring”組件添加到“Config”游戲?qū)ο?

選擇“Config”游戲?qū)ο螅瑢⑿伦侄巍癟ankPrefab”設(shè)置為 Project 文件夾中的“Tank”預(yù)制件(拖放),將“TankCount”設(shè)置為 20,將“SafeZoneRadius”設(shè)置為 15.


“SafeZoneRadius”尚未使用,但與后續(xù)步驟相關(guān)。

在“Scripts/Systems”文件夾中創(chuàng)建一個名為“TankSpawningSystem.cs”的新C#源文件,將以下內(nèi)容放入其中:

如果您此時進入游戲模式,您可能會驚訝地看到只有一個坦克.實際上有 20 輛坦克,但它們都在相同的位置生成并以完全相同的方式移動.

修改文件夾“Scripts/Systems”中名為“TankMovementSystem.cs”的文件內(nèi)容如下:

然后就可以Run了:

給坦克和炮彈上色

找到我們的坦克(Tank)預(yù)制體,給Tank,Turret以及Cylinder添加?URPMaterialPropertyBaseColor組件,這個時候我們就可以得到全黑的坦克啦.


修改文件夾“Scripts/Systems”中名為“TankSpawningSystem.cs”的文件內(nèi)容如下:


如果這個時候播放,就可以得到隨機顏色的坦克了.

修改文件夾“Scripts/Authoring”中名為“CannonBallAuthoring.cs”的文件內(nèi)容如下:


修改文件夾“Scripts/Aspects”中名為“TurretAspect.cs”的文件內(nèi)容如下:


修改文件夾“Scripts/Systems”中名為“TurretShootingSystem.cs”的文件內(nèi)容如下:


現(xiàn)在再播放,子彈也上色了.

安全區(qū)

在“Scripts/Components”文件夾中創(chuàng)建一個名為“Shooting.cs”的新C#源文件,將以下內(nèi)容放入其中:


修改文件夾“Scripts/Authoring”中名為“TurretAuthoring.cs”的文件內(nèi)容如下:

在“Scripts/Systems”文件夾中創(chuàng)建一個名為“SafeZoneSystem.cs”的新C#源文件,將以下內(nèi)容放入其中:

修改文件夾“Scripts/Systems”中名為“TurretShootingSystem.cs”的文件內(nèi)容如下:

確保在視圖選項中啟用了 Gizmo,否則您將看不到白色圓圈。

相機跟隨

在“Scripts/MonoBehaviours”文件夾中創(chuàng)建一個名為“CameraSingleton.cs”的新C#源文件,將以下內(nèi)容放入其中:

將“CameraSingleton”MonoBehaviour 添加到“SampleScene”中的“Main Camera”游戲?qū)ο?

在“Scripts/Systems”文件夾中創(chuàng)建一個名為“CameraSystem.cs”的新C#源文件,將以下內(nèi)容放入其中:

進入播放模式,查看 Game 視圖(而不是之前的 Scene 視圖),并注意相機正在跟隨其中一輛坦克。確保 Game 視圖具有輸入焦點(單擊它),然后反復(fù)按空格鍵。相機每次都應(yīng)該切換到另一個隨機坦克。

結(jié)束


[學(xué)習(xí)筆記][翻譯搬運]Unity Dots ECS 1.0 github 入門教程的評論 (共 條)

分享到微博請遵守國家法律
普陀区| 恩平市| 沁水县| 崇礼县| 崇文区| 田林县| 玛沁县| 黔南| 莫力| 临颍县| 集安市| 延庆县| 静宁县| 阳春市| 南安市| 尼勒克县| 保康县| 武定县| 衡东县| 靖安县| 定兴县| 鹿邑县| 高雄市| 鲁山县| 班玛县| 肃北| 东明县| 本溪| 穆棱市| 芦山县| 任丘市| 武城县| 黄龙县| 交口县| 合川市| 曲阳县| 广河县| 二手房| 长宁区| 游戏| 萝北县|