AR制作原來這么簡單

Jyadmin 提交于 周一, 12/19/2022 - 13:45

?

安卓環境配置

我們的項目完成后將運行在安卓移動設備上,所以我們先將平臺配置好

1.?File?-> Build Setting ->?勾選Android?-> Switch Platform

2.?然后點擊Player Setting?->?Other Setting -> Color Space,選為Gamma模式。取消勾選Android TV Compatibility

3.?XR Setting -> 勾選Vuforia Augmented Reality Support

AR制作

?

創建工程

1.?將SampleAssets.unitypackage導入

2.?打開一個新場景,刪除Directional Light

3.?到Project > SampleAssets > Complete >

? ? Prefabs文件夾,把LevelArt拖入Hierarchy窗口。這樣可以讓 LevelArt 處于(0,0,0)坐標,以便基于世界坐標來烘焙(bake)NavMesh(刪除Directional Light是因為Sandbox已經有一盞Directional Light了)

4.?保存場景

AR制作

?

Tags and Layers 介紹

1.?Tags 用于標注項目中的物體

2.?Sorting Layers ?2d系統中Sprite的顯示層級

3.?Layers用于創建具有某些相同特征的物體

常用于相機分層顯示,射線檢測等功能

打開Edit->Project Settings->Tags and Layers->添加 Actor

AR制作

?

光照和陰影設置

1.?打開Window > Rendering >Lighting > Sce ? ? ne窗口, 取消Auto Generate, 取消Mixed Li ? ? ghting > Baked Global Ilumination

2.?在Environment > Environment Lighting > Source, 改為Color, 顏色改為紫色

3.?接下去我們要修復陰影, 因為現在拉遠了看, Zoom In/Zoom Out的時候, 當前的陰影會消失. 這是由于Shadow Distance太小了

4.?到Edit > Project Settings > Qality, 把Shadow Distance改為300

?

場景、腳本設置

1.?到Project > SampleAssets > Prefabs > Co ? ? mplete 文件夾,把Player、AITank拖入Hier ? ? archy窗口

·彈藥設置

①?在Project > SampleAssets > Prefabs > Complete中點擊AxeShell,掛載Shell腳本

②?點擊預制體右側小三角形展開,將ShellExplosion拖動到ExplosionAudioSource和ExplosionParticles中,ExplosionRadius設置為3,DamageMask設置為Actor,勾選IsRotate

③?另一Shell使用相同方法,參數相同,不勾選IsRotat

AR制作

?

Player設置

1.?在Project > SampleAssets > Scripts中找到PlayerController和PlayerCharacter腳本,掛載到Player上

2.?掛載的腳本上屬性值都為空,需要手動設置

3.?Speed:8 Turn Speed:18 LaunchForce:10 Health:100 Attack Time:0.6

4.?在Hierarchy中的Player展開,對應名稱將Muzzle、ShootAudioSource、Explosion拖動到Inspector的屬性中

5.?展開HPCanvas下的所有對象,將Slider拖動到Health Slider,Fill添加到HealthFillImage

6.?到Project > SampleAssets > Prefabs > Complete 文件夾,把AxeShell拖入Shell中

AR制作

?

AITank設置

1.?在Project > SampleAssets > Scripts中找到AIController和PlayerCharacter腳本,掛載到AITank上

2.?Speed:8 Turn Speed:0 LaunchForce:10 Health:100 Attack Time:0

3.?在Hierarchy中的Player展開,對應名稱將Muzzle、ShootAudioSource、Explosion拖動到Inspector的屬性中

4.?展開HPCanvas下的所有對象,將Slider拖動到Health Slider,Fill添加到HealthFillImage

5.?到Project > SampleAssets > Complete > Prefabs文件夾,把Shell拖入Shell中

AR制作

?

導航設置

1.?在Hierarchy > LevelArt中將除了光照以外的物體選中,按住Ctrl多選,在右側Inspector勾選Static > Yes,Change the Children

2.?菜單欄Windows > Navigation,在右側會出現Navigation面板

3.?將MaxSlope設置為0,點擊Bake,界面中的網格就是Tank可以行走的區域

AR制作

?

應用AR

AR制作

1.?在Hierarchy窗口中右鍵 Vuforia> 添加ARCamera、Image ,ImageTarget的Positions Y設為-0.01,Scale設置為100

2.?在ImageTarget下創建空物體,修改名字為Arena,將Player、LevelArt、AITank置為它的子物體

3.?選中Imagetarget,點擊DefaultTrackableEventHandler腳本編輯

4.?添加公共變量public GameObject Arena;

在OnTrackingFound末尾添加Arena.SetActive(true);

在OnTrackingLost末尾添加Arena.SetActive(false);保存代碼

5.?在Inspector中將Hierarchy中的Arena賦給變量Arena,這樣就是為了追蹤到目標就顯示游戲場景,丟失目標就消失

?

EasyTouch插件

1.?導入EasyTouch插件,檢查Console面板是否報錯

2.?在Hierarchy面板右鍵,EasyTouch > EasyTouch,分別添加EasyTouchController > InputManager、JoyStick、Button

3.?選中JoyStick,修改在UI上的位置,更改名字為Move,展開Axes properties,勾選Turn&Move direction Action > 勾選Auto link to tag。

4.?展開Move Events,點擊OnMoveStart()右下角點擊+,將Hierarchy中的Player添加到None,NoneFunction > PlayerCharacter > Move(),在OnMoveEnd()中使用相同操作添加Move()

5.?更改Button名字為Fire,修改UI,放置在合適的位置

6.?展開Events,點擊OnDown()右下角+,將Hierarchy中的Player添加到None,NoneFunction > PlayerCharacter > Fire()

AR制作

?

更改朝向

1.?點擊菜單欄Unity > Build Setting

2.?在Resolution and Presentation > Orientation中將Default Orientation改為LandScape Left

?

至此,我們的項目已經完成好了,打包發布看看效果吧

AR制作