该项目为开源项目,主要用于初学者学习,目前最新版本v1.6,加入了公共聊天室(用于测试)。
最终的apk | exe
文件仅用于展示浏览,其中不乏包含一些BUG,作者并未在任何平台发布该游戏!
Unity3D Project, subject two, simulated driving test
- Project Name: Simulated Driving 2 v1.6
- Start time: October 26, 2020
- Author: Alan21 | XiaYuCheng(夏雨程)
- Operating platform: Mobile terminal | PC
- Running equipment(DrivSim_v1.6.Apk):
- HUAWEI Nova4e(Android)-ok
- HUAWEI P50 PRO(Android)-ok
- HUAWEI Mate30 PRO(Android)-ok
- Galaxy S7(Android)-ok
- Unity3D version: Unity 2019.4.13f1c1 (64-bit)
- Libraries used: iTween
- Auxiliary tools: FFmpeg(Using FFMPEG on audio clips only, you don't need to download it)
- Demo address: Video
- Explain: The beginner’s project may not be perfect, but I hope this project will help you a bit.
游戏Apk文件:
链接:https://pan.baidu.com/s/1H6xX-S5G5dGVMrs4wVgFdA?pwd=alan
提取码:alan
GitHub上的二进制Apk测试文件下载
https://github.com/SummerRainCity/Unity3D-DrivingTestSimulation/releases/tag/ApkFile
-
更新时间-2021-1-17
- 解决了方向盘不同机型转动轴心偏离
-
更新时间-2021-2-18
- 加入了手刹系统
-
待更新-2021-6-19(工作太忙少有时间更新,先指出问题)- 解决了在REC回放下偶然出现的物体回放错位BUG(每一个挂ReplayEntity.cs的脚本都将被记录状态,且被记录的物体若为子物体那么应当记录的是localPosition,若所有的父子物体都记录世界坐标,在回放时可能将出现一些怪异的现象。
- 关于移动端滑动时视觉出现“闪移”的问题,滑动移动视觉的代码在TPD.cs与FED.cs中,其中有代码if(results[k].gameObject.tag == "camera_panel"),标签camera_panel是UI组件的标签,你应当限制这个组件只接收首次触摸点,其中camera_panel面板应当按照比例缩小,把锚点与自己的四个实心蓝点重合即可。
- 在回放时,应当取消掉被回放的物体上有可能控制物体变换组件的所有脚本。
- 单项练习的玩家生成点与项目位置似乎没有对接好,可手动调整生成点到合适的位置(场景:Exam Mode.unity)
- 倒车入库(3步骤+时间限制210s+压线检测+中途停车检测)
- 侧方停车(2步骤+时间限制90s+压线检测+中途停车检测)
- 半坡起步(1步骤+时间限制30s+压线检测+中途停车检测)
- 直角转弯(2步骤+时间限制30s+压线检测+中途停车检测)
- 曲线行驶(1步骤+中途停车检测)
- Home [主页]
- 考试模式(可回放)
- 自由练习
- 教程
- 退出游戏
- Choose [单项练习]
- 倒车入库(可回放)
- 侧方停车(可回放)
- 半坡起步(可回放)
- 直角转弯(可回放)
- 曲线行驶(可回放)
-
某些项目没有设置边界空气墙,玩家可以绕过项目到达终点:
- 若假设玩家遵守规则,那么这条可以忽略
-
“曲线行驶”没有设定压线检测
- 解决方案1:建两个S模型,在Unity里加碰撞器即可。
-
UI以及触屏视觉操作方面,建议使用第三方库,Unity商城
说明:主要用于检测停车是否到位,你可以用此代码加入你自己的项目。 距离检测功能关键代码如下:
/*
参数p:检测轴基点(空物体)
参数axis:相对目标朝向轴,三个参数(Vector3.forward,Vector3.up,Vector3.right)
参数target:目标点(汽车)
返回值:返回距离差
*/
public float GetAxisDisValue(Transform p, Vector3 axis, Transform target)
{
//X轴度数基准向量
Vector3 a = p.TransformPoint(axis);
//库点朝向指定轴
Vector3 vecA = a - p.position;
//库点指向车辆
Vector3 vecC= target.position - p.position;
//反余弦函数得到度数
float angle = Mathf.Acos(Vector3.Dot(vecA.normalized, vecC.normalized));
//车与库点距离
float dis = Vector3.Distance(target.position, p.position);
//p与目标点在指定轴的投影距离
float proDis = Mathf.Cos(angle) * dis;
return proDis;
}
Tip:
In order to avoid some trouble.
DES:HeavyMake project is not open source.
Thanks for your attention.(。・ω・。)ノ♡
- 使用UI框架[✓]-UI资源 Complete Sci-Fi UI
- REC记录与回放[✓]-录制回放插件 Record and Play
- Touch触屏视觉操作[×] - 依然是多视觉切换,搜索Touch
- 增加大量载具 - 共16具载具
- 重构了DrivingKernel.cs汽车驱动核心代码
- 演示视频:DES:Heavy Make