学习目标:

ET框架-Demo工程的编译与运行


学习内容:

1.Unity工程代码编辑器的设置
2.服务器配置
3.运行Server.App
4.手动去编译Unity客户端代码
5.运行客户端
6.打包客户端(以及打包BUG解决)
7.运行测试


学习时间:

2022.2.19


学习产出:

1.Unity工程代码编辑器的设置

打开Edit-Preferences

我们将代码编辑器设置为我们之前安装的VS2022

在Unity下面使用VS2022打开一次项目

2.服务器配置

进入目录,打开Client-Server.sln

需要在"工具-选项-适用于Unity的工具-常规"里,把杂项里的禁止完整生成项目改为False

然后我们选择Client下面的Mono,右键

点击重新生成

然后我们选择解决方案,然后右键

我们重新生成解决方案

现在我们ET框架所有的源代码都被编译完成了

3.运行Server.App

点击即可运行

然后我们就开启了黑窗口

但是我们的黑窗口并没有任何的日志输出,我们并不知道是否启动成功,或者是否报错,那我们应该在哪去查看呢?
答案是,在Logs文件夹下面
这两个文件,就是我们的log文件

这里我们不免会好奇,为什么我们我们的日志不在控制台的黑窗口输出呢?为何要多此一举生成一个文件,每一次还得打开log文件去查看?
原因有二:

  1. 首先我们的服务器如果出现问题,exe文件崩溃,那么日志文件就会全部消失,我们根本无法去定位我们的错误在哪,这也是为什么我们需要将log文件保留下来的重要原因
  2. 我们是没办法在正式服务器程序去查看这个黑窗口

打开日志文件,发现Server启动成功

4.手动去编译Unity客户端代码

我们的代码并不是放在Assets文件夹下面,而是与Assets文件夹同级的Codes文件夹下面,这样做的好处就是方便热更新,我们并不需要Unity自动的去帮我们编译代码,反而,我们可以随时进行修改,然后随时进行编译,这是很方便同时也很有意义的一件事。
这也是ET框架最大的优点之一

在Unity–Tools–BuildCodeDebug点击

编译完成

5.运行客户端

我们打开场景Init,然后将代码Init的CodeMode从IL Runtime热更新模式变为Mono模式,来保证我们游戏运行的一个正确性

我们直接点击登录

然后进入地图

我们鼠标右键对应位置,小人会跟随移动

如果出现了全部爆红的情况,可能是材质丢失

我们选择对应的物体,然后将Shader改为Unity自带的默认的Shader即可解决

6.打包客户端(以及打包BUG解决)

我们发现,这里只有一个小人在移动
既然是网络游戏,那是不是应该来多个小人一起才有意思呢?
好主意,那我们就去Build我们的项目

首先我们进入ProjectSettings
将其设置为窗口显示

然后我们进入Tools点击打包工具

勾选三个之后,点击打包

这里出现了bug
显示我们没有StreamingAssets文件夹

那我们就自己创建一个

又出现了一个bug
IL2CPP is not installed

这里我们进入UnityHub
添加一个模块,名为Windows Build Support(IL2CPP)
然后我们重启项目,然后进入Tools打包

打包完成之后,我们进入Release文件夹

打包完成

7.运行测试

我们重新启动我们的服务器,也就是

然后我们打开两个以上的客户端

我们发现,两个客户端的玩家位置会同时进行同步

ET框架-03 ET框架-Demo工程的编译与运行相关推荐

  1. ADI官方源码快速搭建demo工程验证设计的正确性

    目录 1 ADI官方demo工程设计简介 2  ADI官方HDL源码介绍 2.1  HDL源码用户指导书:ADI Reference Designs HDL User Guide 2.2  C源代码下 ...

  2. ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin 前言 Cygwin 安装 工程编译 总结 ...

  3. Java学习---day14_集合框架03

    Java学习-day14_集合框架03 Set集合 Set集合中,没有下标的概念 Set集合,是一个去重复的集合.在Set集合中不会添加重复的元素的 在向一个Set集合中添加元素的时候,会先判断这个元 ...

  4. Iris微服务框架_golang web框架_完整示例Demo

    Iris简介 Iris是一款Go语言中用来开发web应用的框架,该框架支持编写一次并在任何地方以最小的机器功率运行,如Android.ios.Linux和Windows等.该框架只需要一个可执行的服务 ...

  5. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...

    星期一, 20. 八月 2018 01:53上午 - beautifulzzzz 1.前言 做类似zigbee.ble mesh...无线网络节点性能测试的时候,手动操作然后看表象往往很难找出真正的原 ...

  6. 【游戏开发高阶】从零到一教你Unity使用ToLua实现热更新(含Demo工程 | LuaFramework | 增量 | HotUpdate)

    文章目录 零.前言 一.我做的热更新Demo 1.效果演示 2.流程图 3.工程源码 二.为什么要有热更新 三.Unity如何支持热更新 1.热更C#代码 2.热更lua代码与资源 四.Unity中集 ...

  7. 软件自动测试框架,软件自动化测试框架的研究和实现

    摘要: 软件自动化测试是软件工程领域的一项重要课题.随着软件工程理论的不断发展,软件自动化测试在理论上也不断达到新的高度.目前最为成熟的软件自动化测试技术是使用自动测试框架来指导自动化测试的实现.迄今 ...

  8. ROS探索总结(一)(二)(三):ROS总体框架 ROS总体框架 ROS新手教程

    ROS探索总结(一)--ROS简介 一.历史 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求.2010年Willow Garage公 ...

  9. TF之AutoML框架:AutoML框架的简介、特点、使用方法详细攻略

    TF之AutoML框架:AutoML框架的简介.特点.使用方法详细攻略 目录 AutoML框架的简介 AutoML框架的特点 AutoML框架的使用方法 AutoML VS AutoKeras 框架 ...

  10. AFN框架和SDWebImage框架的上手体验

    AFN框架和SDWebImage框架的上手体验 资料来源2015-10-15 ,我曾经尝试安装cocoaPods,并且成功了,但是版本更新太快,api函数封装有所变化,为了保证资料的准确一致,先学习过 ...

最新文章

  1. javascript的date对象
  2. ssm整合(基于xml配置方式)
  3. 用oc/c编写冒泡排序
  4. JavaScript Select和Option列表元素上下左右移动
  5. MySQL 5.7 深度解析: 半同步复制技术
  6. python入门系列:深入Python的set和dict
  7. 安全应对MySQL攻击
  8. Python入门--字符串的切片操作
  9. C++ std::map sort 如何按值排序 自定义比较函数 比较对象某个字段
  10. 服务器2012导出日志文件,MDT2012,client部署日志存放在服务器上
  11. 安卓手机管理软件_超强手机磁力搜索+播放+下载软件,满速下载,一键播放!...
  12. ABP 在中抛出“Cannot access a disposed object. A common cause of this error is disposing”异常分析
  13. 小白怎么入门网络安全?看这篇就够啦!
  14. C#从剪贴板上获取图片
  15. 腾讯Bugly的前世今生
  16. 7年python程序员总结 - Python学习方法和高手养成
  17. 若依(RuoYi-Vue)+Flowable工作流前后端整合教程
  18. 简明python学习笔记—基本概念
  19. 好用的翻译插件-一键自动翻译插件软件
  20. protonmail邮箱注册

热门文章

  1. 基于RFID的图书馆管理
  2. 三菱plc串口通讯c语言,三菱plc串口通信协议与串口初始化
  3. 遥感图像裁剪后在ENVI里显示为黑色解决办法
  4. Java前后端分离项目部署
  5. linux shell脚本教程
  6. mybatisplus自动生成id_【mybatis-plus】主键id生成、字段自动填充
  7. RFC 5627 SIP中文翻译
  8. 综述文章笔记——《A Survey on Traffic Signal Control Methods》等
  9. 各种学习资料库,非常好的收藏汇总!!!!!
  10. Jquery(十)jqueryUI常用功能实战