Skip to content

Latest commit

 

History

History
226 lines (129 loc) · 11.1 KB

README_QuickStart.md

File metadata and controls

226 lines (129 loc) · 11.1 KB

CrazyCar

视频教程

二、服务端环境

运行

  1. Unity(2021.3.9及以上)打开CrazyCar -> CrazyCarClient项目;

  2. 由于项目使用了HybridCLR,所以先配置项目的IL2CPP:打开菜单HybridCLR/Installer, 点击安装按钮进行安装,具体操作可以查看HybridCLR (code-philosophy.com)Assets->HotUpdate文件夹为热更文件夹,热更的DLL打包好会放入Assets->HotUpdateDll,这些打包的时候都已经封装好了,直接执行菜单Build/Remote

  3. Unity中设置Login场景中的NetworkController,设置成Local(当然你不愿意部署服务器,也可以使用Remote,那就可以跳过下面所有的步骤);

  4. 启动Mysql,并运行CrazyCar -> CrazyCarServer -> src -> main -> resources中的data.sql脚本,部署数据库,注意Mysql账号和密码需要和配置文件保持一致

  5. 配置Java环境(JDK17):官网下载JDK17 (win10请下载exe,Mac下载dmg不要下载zip自己配置)-->配置系统环境变量 详细教程

  6. 配置Maven环境:官网下载 --> 配置环境变量 详细教程

  7. VScode安装Spring Boot开发插件:Extension Pack for Java、Spring Initializr Java Support、Maven for Java、Community Server Connectors(原Tomcat)、Lombok

  8. VS code配置Java和Maven路径*(此路径为在Editor运行时的加载路径,打包时需要本地环境变量配置好maven与jdk相关路径)*,Mac 和Windows示例如下:

  9. 使用VScode打开文件夹:CrazyCarServer,F5启动项目

  10. 服务端运行成功后,即可运行Unity客户端;

  1. 如果你是第一次部署服务器,可能会出现Mysql运行脚本、VScode配置Java、Maven环境加载失败等问题,请自行Google!
  2. 游戏支持单机模式,如果你没有服务器,也可以进行打版测试(直接Build出版本就行)
  3. Apifox接口测试分享
  1. 安装nodejs 16 ,使用VScode打开文件夹:CrazyCarBackground,然后在终端运行npm install安装依赖,最后使用npm run dev运行即可 (此模块按需求部署即可,详细操作文档 ,不要使用nodejs18及其以上版本,使用16)

环境版本

  1. Unity 2021.3.9 f1c1
  2. VS 2019
  3. JDK 17 可高不可低
  4. MySQL 8.0.26
  5. Nginx 1.20.1 用户部署热更资源
  6. Nodejs 16.16.0 不要使用18以上版本

环境配置

  • 服务器配置流程(windows)

    graph LR
    start-->购买服务器-->配置Java环境-->配置Web服务器(Nginx)-->配置Mysql
    
    Loading
  • 客户端配置流程(Windows/Mac)

    graph LR
    start-->配置Java环境-->配置Maven环境-->配置Mysql-->配置VScode开发环境-->安装Unity
    
    Loading
  • 配置服务器基本属性

    1. 购买云服务器 华为云

    2. 设置云服务的安全组入口 ,华为云初始化会有三个安全组,其中有一个Web Server组是用来做Web开发的,它已经把80、443等网络端口开放,当然也可以自己去设定比如开放8080(Tomcat)、8081(Spring Boot服务端)、50001(KCP设置端口)、3389(Mysql)

游戏引擎

Unity 2021.3.9 及以上

添加新的热更类型

以添加新类型Medal(勋章)为例

  1. CrazyCar\CrazyCar\Assets\AB文件夹下添加新的文件夹Medal
  2. 相应的资源放入此文件夹
  3. 打开Windows -> Asset Management -> Groups窗口
  4. 点击Create创建新的Group,命名为Medal
  5. 将资源拖入此分组
  6. 点击Build -> New Build,进行生成增量包 (请自行百度Addressable了解生成新包和增量包的区别)
  7. CrazyCar\CrazyCar\Assets\StreamingAssets下生成的包放入CrazyCar\CrazyCarServer\src\main\webapp重新生成War/Jar包发布到服务端即可
  8. 具体分组的参数设置可以查看此文章

热修复

image-20231127091759199

  1. 所有的热更脚本需要放入,Project->HotUpdate文件夹中
  2. 需要热更的UI,需要拖入AddressableWaitingHot分组中,如LoginU
  3. 然后点击Windows->Build->HotFix
  4. Project->StreamingAssets中的对应的资源放入CDN或者热更服务器中即可

点击HotFix,首先会自动的执行HybridCLR资源整理,然后替换Project-->HotUpdateDll下的HotUpdate.dll.bytes,然后再进行Addressable资源打包,这一切都是自动化的,无需手动修改,至于为什么要替换HotUpdate.dll.bytes,需要自己去看一下HybridCLR的文档。

添加头像

  1. 将头像放入Assets -> AB -> Avatar 文件夹
  2. 将新头像拖入Windows -> Asset Management -> Groups窗口,中的Avatar分组
  3. 在数据库avatar_name表中添加新的头像信息,ID字段为头像名
  4. 运行Unity,进行查看
  5. 点击Build -> New Build,进行生成新包
  6. CrazyCar\CrazyCar\ServerData下生成的包放入CrazyCar\CrazyCarServer\src\main\webapp重新生成War/Jar包发布到服务端即可

自动化打版

  1. Android、PC和IOS都是直接点击Build -->Local(过程中会让你选择目标文件夹),进行打版,Remote为使用线上服务器。
  2. 如果没有服务器,游戏支持单机模式,但是只能使用主功能,直接使用File --> BuildSettings --> Build即可。

添加装备

  1. 复制一个CrazyCar --> CrazyCar --> Assets --> AB --> Equip--> Items文件夹下个任意一个Prefab ,并重命名
  2. 将你的装备的IconMaterialMesh放入CrazyCar --> CrazyCar --> Assets --> AB --> Equip对应的文件夹
  3. 双击开你的Prefab修改Prefab对应的信息,在复制好的基础上进行处理你要添加你的装备(当然你也可以重新制作一个新的,最后将EquipResource脚本放在根节点,并填好信息即可)
  4. 将新装备prefab拖入Windows -> Asset Management -> Groups窗口,中的Equip分组
  5. 在数据库all_equip表中添加装备信息
  6. 运行Unity,进行查看
  7. 点击Build -> New Build,进行生成新包
  8. CrazyCar\CrazyCar\ServerData下生成的包放入CrazyCar\CrazyCarServer\src\main\webapp重新生成War/Jar包发布到服务端即可

增加TimeTrial关卡

  1. 在数据库time_trial_class表中添加关卡信息即可

    map_id为0-4,因为现在就5张图

增加比赛

  1. 在数据库match_class表中添加关卡信息即可

map_id为0-4,因为现在就5张图

添加地图

  1. Unity中打开MapController.prefab,添加你的地图

  2. 将新图拖入到MapController中的MapsGO

  3. Map0中复制一份CheckpointController,到新地图,并将CheckpointController里面的CheckpointEndSign,移动到相应的位置

  4. Map0中复制一份MiniMap,到新地图,将MiniMapPlane中的Material换成新地图的素材

  5. 打开Game场景,将新地图的Scale调整的和现有地图大小相似

  6. 地图的起点位置为,Game场景中StartPos所在的位置

  7. 添加路线

    • 添加Path空物体

    • 在Path空物体下添加空物体PathCreator

    • 给PathCreator添加PathCreator组件

    • 通过Shift+左鼠标键添加节点,Ctrl+左鼠标键删除节点,制作地图路线

      详情操作可以查看Path Creator - Google 文档

  8. 可以在TimeTrial添加相应的关卡进行测试

添加多语言

  1. 打开Tools --> Translate窗口

    Guidance0
  2. 输入要翻译的文案数量以及内容,点击显示翻译按钮

  3. 查看翻译内容是否合适

  4. 点击添加翻译按钮,文案就会自动添加到CrazyCar\CrazyCar\Assets\Resources\Language\Locales对应的文件里

添加新手教程

  1. 在需要添加新手教程的页面添加Guidance预制体

    Guidance0
  2. 设置Guidance参数

    Guidance0
    • CanvasType Guidance组件需要提供UI所在的父物体Canvas组件,在Index场景是通过UIController脚本管理所以页面,如果新增页面,有新的Canvas,需要在GuidanceSystem脚本进行添加并赋值,可以参考UIController操作过程

    • GuidanceType

      可以设置点击区域是圆形还是矩形

    • IsClick

      区域是否需要点击功能,如AvatarUI的这个关闭按钮不需要实现关闭AvatarUI页面功能,则不勾选

    • 每个Guidance都需要新建一个Material(复制一份现有的AvatarGuidanceMat重命名就可以)

    注:完成标识符为UserModel中的IsCompleteGuidance,完成条件为点击计时赛按钮

    添加新技能

    整体设计方案参考:在Unity中制作完整的技能系统(介绍篇) - 知乎 (zhihu.com)

    1. CrazyCarClient\Assets\AB\Skill\SkillData.json下添加对应技能配置,参数意义可以参考SkillData.cs
    2. CrazyCarClient\Assets\AB\Skill\SkillIconCrazyCarClient\Assets\AB\Skill\SkillPrefab下添加对应资源
    3. 技能指示器插件虽然已经集成,但是不建议在赛车游戏中加入,SkillData.skillIndicator为空就行
    4. 需要在InputSystemPanel.prefabInputSystemPanel.cs添加新的技能按钮,操作的数值value就是技能id