安卓环境配置
我们的项目完成后将运行在安卓移动设备上,所以我们先将平台配置好
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
创建工程
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. 保存场景
Tags and Layers 介绍
1. Tags 用于标注项目中的物体
2. Sorting Layers 2d系统中Sprite的显示层级
3. Layers用于创建具有某些相同特征的物体
常用于相机分层显示,射线检测等功能
打开Edit->Project Settings->Tags and Layers->添加 Actor
光照和阴影设置
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
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中
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中
导航设置
1. 在Hierarchy > LevelArt中将除了光照以外的物体选中,按住Ctrl多选,在右侧Inspector勾选Static > Yes,Change the Children
2. 菜单栏Windows > Navigation,在右侧会出现Navigation面板
3. 将MaxSlope设置为0,点击Bake,界面中的网格就是Tank可以行走的区域
应用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()
更改朝向
1. 点击菜单栏Unity > Build Setting
2. 在Resolution and Presentation > Orientation中将Default Orientation改为LandScape Left
至此,我们的项目已经完成好了,打包发布看看效果吧