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