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制作