?
安卓環(huán)境配置
我們的項(xiàng)目完成后將運(yùn)行在安卓移動(dòng)設(shè)備上,所以我們先將平臺(tái)配置好
1.?File?-> Build Setting ->?勾選Android?-> Switch Platform
2.?然后點(diǎn)擊Player Setting?->?Other Setting -> Color Space,選為Gamma模式。取消勾選Android TV Compatibility
3.?XR Setting -> 勾選Vuforia Augmented Reality Support
?
創(chuàng)建工程
1.?將SampleAssets.unitypackage導(dǎo)入
2.?打開一個(gè)新場(chǎng)景,刪除Directional Light
3.?到Project > SampleAssets > Complete >
? ? Prefabs文件夾,把LevelArt拖入Hierarchy窗口。這樣可以讓 LevelArt 處于(0,0,0)坐標(biāo),以便基于世界坐標(biāo)來烘焙(bake)NavMesh(刪除Directional Light是因?yàn)镾andbox已經(jīng)有一盞Directional Light了)
4.?保存場(chǎng)景
?
Tags and Layers 介紹
1.?Tags 用于標(biāo)注項(xiàng)目中的物體
2.?Sorting Layers ?2d系統(tǒng)中Sprite的顯示層級(jí)
3.?Layers用于創(chuàng)建具有某些相同特征的物體
常用于相機(jī)分層顯示,射線檢測(cè)等功能
打開Edit->Project Settings->Tags and Layers->添加 Actor
?
光照和陰影設(shè)置
2.?在Environment > Environment Lighting > Source, 改為Color, 顏色改為紫色
3.?接下去我們要修復(fù)陰影, 因?yàn)楝F(xiàn)在拉遠(yuǎn)了看, Zoom In/Zoom Out的時(shí)候, 當(dāng)前的陰影會(huì)消失. 這是由于Shadow Distance太小了
4.?到Edit > Project Settings > Qality, 把Shadow Distance改為300
?
場(chǎng)景、腳本設(shè)置
1.?到Project > SampleAssets > Prefabs > Co ? ? mplete 文件夾,把Player、AITank拖入Hier ? ? archy窗口
·彈藥設(shè)置
①?在Project > SampleAssets > Prefabs > Complete中點(diǎn)擊AxeShell,掛載Shell腳本
②?點(diǎn)擊預(yù)制體右側(cè)小三角形展開,將ShellExplosion拖動(dòng)到ExplosionAudioSource和ExplosionParticles中,ExplosionRadius設(shè)置為3,DamageMask設(shè)置為Actor,勾選IsRotate
③?另一Shell使用相同方法,參數(shù)相同,不勾選IsRotat
?
Player設(shè)置
1.?在Project > SampleAssets > Scripts中找到PlayerController和PlayerCharacter腳本,掛載到Player上
2.?掛載的腳本上屬性值都為空,需要手動(dòng)設(shè)置
3.?Speed:8 Turn Speed:18 LaunchForce:10 Health:100 Attack Time:0.6
4.?在Hierarchy中的Player展開,對(duì)應(yīng)名稱將Muzzle、ShootAudioSource、Explosion拖動(dòng)到Inspector的屬性中
5.?展開HPCanvas下的所有對(duì)象,將Slider拖動(dòng)到Health Slider,F(xiàn)ill添加到HealthFillImage
6.?到Project > SampleAssets > Prefabs > Complete 文件夾,把AxeShell拖入Shell中
?
AITank設(shè)置
1.?在Project > SampleAssets > Scripts中找到AIController和PlayerCharacter腳本,掛載到AITank上
2.?Speed:8 Turn Speed:0 LaunchForce:10 Health:100 Attack Time:0
3.?在Hierarchy中的Player展開,對(duì)應(yīng)名稱將Muzzle、ShootAudioSource、Explosion拖動(dòng)到Inspector的屬性中
4.?展開HPCanvas下的所有對(duì)象,將Slider拖動(dòng)到Health Slider,F(xiàn)ill添加到HealthFillImage
5.?到Project > SampleAssets > Complete > Prefabs文件夾,把Shell拖入Shell中
?
導(dǎo)航設(shè)置
1.?在Hierarchy > LevelArt中將除了光照以外的物體選中,按住Ctrl多選,在右側(cè)Inspector勾選Static > Yes,Change the Children
2.?菜單欄Windows > Navigation,在右側(cè)會(huì)出現(xiàn)Navigation面板
3.?將MaxSlope設(shè)置為0,點(diǎn)擊Bake,界面中的網(wǎng)格就是Tank可以行走的區(qū)域
?
應(yīng)用AR
1.?在Hierarchy窗口中右鍵 Vuforia> 添加ARCamera、Image ,ImageTarget的Positions Y設(shè)為-0.01,Scale設(shè)置為100
2.?在ImageTarget下創(chuàng)建空物體,修改名字為Arena,將Player、LevelArt、AITank置為它的子物體
3.?選中Imagetarget,點(diǎn)擊DefaultTrackableEventHandler腳本編輯
4.?添加公共變量public GameObject Arena;
在OnTrackingFound末尾添加Arena.SetActive(true);
在OnTrackingLost末尾添加Arena.SetActive(false);保存代碼
5.?在Inspector中將Hierarchy中的Arena賦給變量Arena,這樣就是為了追蹤到目標(biāo)就顯示游戲場(chǎng)景,丟失目標(biāo)就消失
?
EasyTouch插件
1.?導(dǎo)入EasyTouch插件,檢查Console面板是否報(bào)錯(cuò)
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,點(diǎn)擊OnMoveStart()右下角點(diǎn)擊+,將Hierarchy中的Player添加到None,NoneFunction > PlayerCharacter > Move(),在OnMoveEnd()中使用相同操作添加Move()
5.?更改Button名字為Fire,修改UI,放置在合適的位置
6.?展開Events,點(diǎn)擊OnDown()右下角+,將Hierarchy中的Player添加到None,NoneFunction > PlayerCharacter > Fire()
?
更改朝向
1.?點(diǎn)擊菜單欄Unity > Build Setting
2.?在Resolution and Presentation > Orientation中將Default Orientation改為L(zhǎng)andScape Left
?
至此,我們的項(xiàng)目已經(jīng)完成好了,打包發(fā)布看看效果吧