【ET8】1.ET8入门-运行指南

news2024/11/19 9:35:32

主要学习网址

论坛地址为:https://et-framework.cn

Git地址为:GitHub - egametang/ET: Unity3D Client And C# Server Framework

官方QQ群 : 474643097

项目检出

检出项目切换到release8.0分支

GitHub地址:GitHub - egametang/ET: Unity3D Client And C# Server Framework

码云地址:(更新可能不及时,我发文章时,最新的版本是7.2的,最好用GitHub的吧)ET: ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等icon-default.png?t=N7T8https://gitee.com/egametang/ET

运行指南

打卡目录下的ET\Book\1.1运行指南.md 文件

运行步骤

  1. IDE安装

    使用Rider2023.2(更新到最新版),需要安装以下内容:

    • 安装.Net7,不要用.Net8,目前并不支持.Net8
    • 不支持VS,新人用VS搞出各种问题请不要来问我,我也没用过VS,后期搞熟了可以自己改用VS
  2. master分支必须使用Unity2021.3.29(初学者请在此版本用熟后再切换其他版本)

  3. 启动UnityHub,打开(Open) -> 选中'ET/Unity'文件夹所在目录后打开工程

  4. 打开工程后,点击Unity菜单 -> Edit -> Preferences -> External Tools 在下拉框'External ScriptEditor'中Rider,Generate .csproj files for全部不要勾选(□)

  5. 点击Unity菜单 -> Assets -> Open C# Project 启动IDE

  6. 在Project视图中选中'Assets/Resources/GlobalConfig',把AppType选择成'Demo(状态同步)'或者'LockStep(帧同步)'

  7. 打开Unity菜单 -> ET -> BuildTool,CodeMode选择Client Server,然后点击ReGenerateProjectFiles

  8. 打开ET.sln,编译整个ET.sln,注意要翻墙,否则可能nuget包下载不下来,导致编译出错

  9. Unity中双击'Assets/Scenes'目录中的Init场景,点击Play(▶)即可运行

  10. 帧同步默认是一个人匹配,如果需要多人匹配,修改LSConstValue.cs中的MatchCount即可

打包过程

  1. 点击HybridCLR -> Installer,点击安装,等待安装完成

  2. 用Rider或VS,编译好Unity.AllHotfix

  3. 点击HybridCLR -> Generate -> All

  4. 点击HybridCLR -> CopyAotDlls,这一步会把需要补充元数据的dll复制到'Assets/Bundles/AotDlls'目录

  5. 打开YooAsset菜单 -> 点击AssetBundle Builder -> 点击下拉框'Copy Buildin File Option' -> 选择'Clear And Copy All' -> 点击'构建'

  6. 打开Unity菜单 -> ET -> BuildTool 点击'BuildPackage',Windows下生成的exe在'ET/Release'里面

另:请自行研究YooAsset包管理库的使用方式(YooAsset官网),若需要升级请自行替换'ET/Unity/Packages/YooAsset'

ENABLE_DLL模式

  1. 该模式用于逻辑全热更新,还有热重载,默认就是使用该模式
  2. 在Unity菜单 -> ET -> ChangeDefines -> Remove ENABLE_DLL(关闭) 或 Add ENABLE_DLL(开启)
  3. 逻辑打成了一个Model.dllHotfix.dll,开启该模式时游戏运行是通过加载dll运行,但这样Unity Editor将无法引用逻辑代码。所以如果有Editor代码需要用到逻辑代码,可以关闭ENABLE_DLL模式
  4. 若需要体验热重载,需要在Unity菜单 -> Edit -> Preferences -> General窗口的ScriptChangesWhilePlaying 中 选择 'RecompileAfterFinishedPlaying',运行后修改Hotfix代码然后用Rider或VS编译好Unity.AllHotfix工程,再在状态同步Demo中按'R'键

注意事项:

一、常见出错原因:

  1. 中文目录
  2. Rider或VS没有更新到最新版本
  3. Rider或VS没有安装相关组件
  4. 没安装.Net7
  5. 没编译服务端所有工程
  6. Unity版本不兼容
  7. Win7用户,没有特别设置
  8. 编译过程中如果出现依赖问题,也有可能是'Unity菜单 -> Edit -> Preferences -> External Tools -> Generate .csproj files for': 当中勾选了:'Registry packages' 或 'Build-in packages', 请记得都不要勾选(□)
  9. 如果打包报错缺少"StreamingAsset",自己在 'ET/Unity/Assets' 下新建一个 StreamingAsset 文件夹即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1294604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据毕业设计之前端02:架构布局和aside的设计

前言 上一篇主要讲了我学习前端的一个经历,以及为什么选择BuildAdmin作为深入前端学习的原因.同事也大致聊了一下学习前端需要使用哪些技术栈。 本篇文章来拆解一下BuildAdmin的前端代码结构,和布局实现的细节。 前端代码结构 必须先了解项目的结构&…

无人机巡检中台揭秘,无人机管控平台助力巡查无人机巡检方案落地

随着无人机智能巡检的飞速发展,巡查无人机应用场景也日益多元,无人机巡检方案被频繁落地到工业生产及巡检巡逻业务中。而无人机管控平台应运而生,成为推动无人机智能巡检的关键工具。那我们一起来看一下无人机管控平台的作用: 一、…

为“异常”努力是值得的

异常是OO语言处理错误的方式,在C中,鼓励使用异常。侯捷再书中谈起异常,“十年前撰写“未将异常考虑在内的”函数是为一种美好实践,而今我们致力于写出“异常安全码”。”可见异常安全的重要。 说起异常安全,首先就要是异常的出现…

免费的网页抓取工具大全【2024最新】

在当今数字化时代,信息的获取变得愈发重要。企业、学者、研究人员都在努力寻找一种高效、可靠的方式从海量的互联网数据中提取有价值的信息。本文将深入探讨各种网页抓取工具的类型。 揭秘网页抓取工具的丰富多样 在网络数据抓取的领域,有多种工具可供…

校园网无法登录IEEE

校园网无法登录IEEE 取消IPV6协议版本的对勾

python数据分析总结(pyecharts)

目录 安装依赖 Demo pyecharts.options 图表绘制 WordCloud.shape 安装依赖 pip install pyecharts Demo ### 对象式 from pyecharts.charts import Bar bar Bar() bar.add_xaxis([1,2,3,4,5]) bar.add_yaxis("数据1",[40,56,65,23,56]) bar.add_yaxis("数…

CleanMyMac X清理垃圾软件有哪些功能?2024版本更新啥内容

如今电脑成为大多数人工作的工具,使用得越久就越需要清理垃圾软件。系统垃圾、废纸娄垃圾、大型和旧文件这些通常都占用了我们的电脑几G的空间。 想要清除不必要的垃圾文件,可以使用mac卸载软件CleanMyMac X,这款清理垃圾软件可以智能扫描Ma…

Linux查看命令的绝对路径

linux查看命令的绝对路径 在Linux中,可以使用以下命令来查看命令的绝对路径: 1、which 命令名 例如,要查看chronyc命令的绝对路径,可以运行: which chronyc 2、whereis 命令名 例如,要查看chronyc命令…

探究Logistic回归:用数学解释分类问题

文章目录 前言回归和分类Logistic回归线性回归Sigmoid函数把回归变成分类Logistic回归算法的数学推导Sigmoid函数与其他激活函数的比较 Logistic回归实例1. 数据预处理2. 模型定义3. 训练模型4. 结果可视化 结语 前言 当谈论当论及机器学习中的回归和分类问题时,很…

横向扩展统一存储与备份服务器功能

Infortrend 更新了GS,GSe,GSe Pro统一存储系列的备份服务器功能。该功能降低数据备份成本,并提供灵活的备份策略。通过备份服务器功能,用户可以通过多种途径实现数据备份,包括公有云(兼容S3)、文…

物联网+AI智慧工地云平台源码(SaaS模式)

智慧工地云平台充分运用数字化技术,聚焦施工现场岗位一线,依托物联网、互联网、AI等技术,围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管…

docker镜像仓库hub.docker.com无法访问

docker镜像仓库hub.docker.com无法访问 文章主要内容: 介绍dockerhub为什么无法访问解决办法 1 介绍dockerhub为什么无法访问 最近许多群友都询问为什么无法访问Docker镜像仓库,于是我也尝试去访问,结果果然无法访问。 大家的第一反应就是…

仅需30秒完美复刻任何人的声音 - 最强AI音频11Labs

我的用词一直都挺克制的,基本不会用到“最强”这个字眼。 但是这一次的这个AI应用,是我认为在TTS(文字转音频)这个领域,当之无愧的“最强”。 ElevenLabs,简称11Labs。 仅需30秒到5分钟左右的极少的数据集…

Numpy数组的数据类型汇总 (第4讲)

Numpy数组的数据类型 (第4讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ&…

MYSQL主从复制配置指引

MYSQL主从复制配置指引 1.前期准备 部署完主备数据库,初始化主备库表结构和数据。 2. 主库配置修改 修改主库配置文件etc/my.cnf,新增以下配置: #服务器 id,需唯一 server-id 1 #二进制文件存放路径 log-bin mysql-bin …

『TypeScript』从零开始编写你的第一个TypeScript程序

📣读完这篇文章里你能收获到 了解TypeScript及为什么使用TypeScriptTypeScript的安装过程编写第一个HelloTs程序 文章目录 一、TypeScript简介1. 什么是TypeScript?2. 为什么选择使用TypeScript?2.1 静态类型检查2.2 更好的代码维护性2.3 更…

C++基础 -42- STL库之list链表

———————STL库之list链表——————— &#x1f384; list链表的格式(需要定义头文件) list<int> data1(4, 100);list<int> data2(4, 500);&#x1f384;list链表的合并接口 &#x1f384;举例使用合并接口并且验证 data2.merge(data1);list<int>::…

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…

【小白专用】MySQL入门(详细总结)

3. 创建数据库 使用 create database 数据库名; 创建数据库。 create database MyDB_one; create database DBAliTest; 创建数据库成功后&#xff0c;数据库的数量变成了6个&#xff0c;多了刚才创建的 dbalitest 。 4. 创建数据库时设置字符编码 使用 create database 数据…

泰裤辣!这个网站制作电子产品册很轻松

电子产品册的制作对于许多企业来说是一项重要的任务&#xff0c;它不仅能够帮助企业展示自己的产品&#xff0c;还能够提高企业的品牌形象和市场竞争力。 这个网站能够轻松制作电子产品册&#xff0c;这无疑是一个非常有用的工具&#xff0c;可以帮助许多企业节省时间和精力&am…