![](https://i-blog.csdnimg.cn/direct/bbceef4ac2db45d8a4d7792f7b071c51.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unity精选篇
文章平均质量分 85
Unity游戏和VR开发过程中一些难题,精选知识内容分享
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
TxNet.Ltd.
不积跬步无以至千里,不积小河无以致江海。
展开
-
Unity技术开发干货 - 总目录
总目录欢迎大家来到 passion 的《Unity技术开发干货》开始前博主先列出学习的大纲,同时也供大家学习参考,如果有什么问题,欢迎留言。一.Unity基础:Unity基础-脚本生命周期Unity基础-向量Unity基础-寻路系统Unity基础-物理系统Unity基础-Mecanim动画系统Unity基础-UGUIUnity基础-灯光Unity-UGUI之Event SystemUnity-2018-粒子系统Unity-协程入门Unity-2D物理引擎、铰链、效应器Unity-原创 2021-06-05 21:53:57 · 2640 阅读 · 10 评论 -
Unity之XR Interaction Toolkit如何在VR中实现一个可以拖拽的UI
普通的VR项目中,我们常见的UI都是一个3D的UI,放置在场景中的某个位置,方便我们使用射线点击。但是为了更好的体验,我们可能会有跟随头显的UI,或者可拖拽的UI,这样更方便用户去操作。所以我们今天的需求就是:如何基于XR Interaction Toolkit 插件 在VR中使用手柄射线来拖拽UI。原创 2024-02-18 11:58:48 · 1147 阅读 · 2 评论 -
Unity如何实现bHaptics TrackSuit震动衣的SDK接入
TrackSuit是bHaptisc公司旗下的一款震动衣,包括X16,X40等不同型号,是一款尖端的无线高级触觉背心,采用人体工程学设计,具有40个精确的触觉反馈点。通过无缝的跨平台支持和无限制、无滞后的游戏体验,增强您的VR冒险体验。用于PC或者VR游戏中高度还原真实射击触感。原创 2023-10-31 00:37:30 · 496 阅读 · 0 评论 -
Unity如何实现TreeView
最近有一个需求,需要实现一个TreeView的试图显示,开始我一直觉得这么通用的结构,肯定有现成的UI组件或者插件可以使用,结果,找了好久,都没有找到合适的插件,有两个效果差强人意。最后在回家的路上突然灵光一闪,想到了一种简单的实现方式,什么插件都不用,仅使用Unity自带的Button和Layout。不仅可以实现一级树形目录,还能实现二级,三级等等,只要你有需要,都可以自定义实现。原创 2023-09-29 15:06:22 · 1040 阅读 · 0 评论 -
Unity之Photon PUN2开发多人游戏如何实现组队功能
Photon Unity Networking 2 (PUN2) 是一款基于Photon Cloud的Unity多人游戏开发框架。它提供了一系列易于使用的API和工具,使开发者可以快速构建多人戏,并轻松处理多人游戏中的网络同步、房间管理、玩家匹配等问题。我们在查看Pun2的Demo时,会发现Demo中自带了一个简易的PhotonTeam和PhotonTeamsManager,如果我们只希望有一个组队功能,那么其实也够用,但是如果我们希望实现不同队伍的队名,队标,或者积分功能之类的,那么就需要自己扩展了。原创 2023-08-27 18:58:02 · 1788 阅读 · 0 评论 -
Photon之如何解决Photon Server无法在局域网使用的bug
先介绍一下Photon的两个服务器服务:Photon Cloud 是一个完全托管的软件即服务 (SaaS) 解决方案。我们可以完全专注于应用程序客户端,而托管、服务器操作和扩展均由光子官方负责。Photon Server 是一个本地服务器应用程序,我们可以在本地或指定的计算机上运行和托管。我们可以自由配置和设置自己的多人游戏后端。完全可定制和扩展。注意Photon Cloud 本身是基于 Photon Server的。只不过他是有光子帮我们维护,原创 2023-08-02 17:17:55 · 1264 阅读 · 0 评论 -
Unity如何实现Microphone实时录音的频率数据提取
Unity中使用Microphone可以通过麦克风录制AudioClip音频,我们可以通过它实现录音功能,然后可以通过录入的音频数据对音频进行分析,比如音量大小,频率高低,等等。我们今天就来分析一下音频的高音低音。原创 2023-06-10 13:18:48 · 2642 阅读 · 0 评论 -
Unity之Photon PUN2开发多人游戏 如何创建公共道具
Photon Unity Networking 2 (PUN2) 是一款基于Photon Cloud的Unity多人游戏开发框架。它提供了一系列易于使用的API和工具,使开发者可以快速构建多人戏,并轻松处理多人游戏中的网络同步、房间管理、玩家匹配等问题。使用PUN2我们可以快速构建一个多人位置和动画同步的游戏,但是当我们增加一点复杂度,比如多人游戏时,场景中随机出现道具,大家都可以去捡,这就需要场景的公共事件,而不是某一个人的事件同步问题了。原创 2023-05-30 23:47:58 · 719 阅读 · 1 评论 -
Unity之如何接入google cardboard-xr-plugin实现android手机VR
我们提到VR,总是会想到Oculus,HTC Vive,Pico等头戴VR设备,但是别忘了,最早Google就通过再手机端实现VR了,而且还推出过Cardboard手机盒子,让我们可以用最低的成本体验到VR效果。原创 2023-05-24 17:08:35 · 2321 阅读 · 1 评论 -
Unity之使用Photon Server + PUN2 开发局域网多人游戏
Photon Engine是一款跨平台的实时多人游戏引擎,它提供了可靠的基础设施和工具,使开发者能够轻松地构建和部署多人游戏。Photon Engine支持多种平台,包括PC、移动设备和Web,同时还提供了多种语言的SDK,如C++、C#、Java、JavaScript等,使得开发者可以使用自己熟悉的编程语言进行开发。Photon Engine的核心功能包括实时通信、房间管理、匹配制度、数据同步等,这些功能都是为了支持多人游戏而设计的。原创 2023-05-23 17:06:41 · 2527 阅读 · 0 评论 -
Unity之使用Photon PUN开发多人游戏教程
Photon是一个网络引擎和多人游戏平台,可以处理其服务器上的所有请求,我们可以在 Unity(或其他游戏引擎)中使用它,并快速把游戏接入Photon的网络中,而我们就可以专注于在项目中添加逻辑,专注于游戏玩法和功能了。PUN(Photon Unity Networking)是一种开箱即用的解决方案,用于处理 Unity 项目中的多人游戏,在本教程中,我们将学习如何:1.创建一个房间供其他玩家连接2.最多可让 20 名玩家连接到同一游戏3.了解玩家如何通过自定义操作相互互动并影响我们的游戏。原创 2023-05-23 08:56:57 · 1296 阅读 · 0 评论 -
Unity之如何接入HybridCLR(代号wolong,原huatuo)热更新框架
HybridCLR(代号wolong)是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。HybridCLR快速上手官方还提供了一个简易的小Demo,演示了如何使用HybridCLR实现热更新。官方文档其实已经非常详细了,我写本文目的主要为了记录一下我的接入过程。我们可以下载官方的示例Demo,我们参考Demo更容易理解HybridCLR。原创 2023-04-12 01:18:12 · 1463 阅读 · 3 评论 -
Unity如何实现3D物体拆解组装
最近有一个需求,是做一个发动机的拆卸和安装功能,其实是一个很简单的功能,但是其中有一个点我觉的非常有意思,就是拖拽组装时,物体如何精准拖到目标位置,思路有了,但是我一直找不到实现方式,早晨刷牙时无意间想到了叉乘,我才有了解决方案。就凭这一次的灵光乍现,也很有必要写篇博客来记录一下。首先,我们先来看下我们要实现的效果,就是对一个发动机(任意多组件物体,如:车)的360°预览查看,手动拖拽拆解,手动拖拽组装。360°旋转视角远近拉伸视角点击拖拽拆卸拖拽组装。原创 2023-02-18 00:20:33 · 8290 阅读 · 50 评论 -
Unity之如何实现TTS文本转语音(真人发音)
微软Azure TTS 文本转语音 服务将文本转换为逼真的语音的语音服务功能支持个各国语言,各种中文各种方言,支持不同音色男音女音支持离线和在线版本原创 2022-10-15 17:42:16 · 3267 阅读 · 0 评论 -
Unity之如何实现一个VR任务(剧情)系统
最近再做一个VR项目,里面有大量的剧情和VR操作任务。比如:1.张三说了什么话,干了什么事,然后,李四又说了什么,做了什么动画,完了之后,场景中某个物体高亮,让我们触摸或者射线点击(pc的话鼠标点击)和其发生交互。2.我们使用VR手柄或者鼠标与场景中的一个物体或者仪器,进行频繁的交互。3.VR场景中出现一些选择性的操作,不同操作进入不同的剧情分支。比如UI选择是|否,物体选择A|B等,当你选了是或者触摸了A,就会进入A分支剧情。相反如果选择了B就会进入B分支。原创 2023-02-13 18:26:54 · 1829 阅读 · 4 评论 -
Unity如何实现录制回放功能
最近一个VR项目,需要实现一个第三人称视角的回放功能,如果这种功能纯让美术去K动画,那显然会非常消耗人力,且复用性极差,所以我想了一个方案。大致原理:使用第一人称控制人物行为,然后使用帧同步的机制,记录下来用户的每一帧有效操作,并存储下来,最后当我们回放时,就可以按照用户的真是操作指令,一帧一帧的还原第一人称的行为。这样美术同学就只需要去做一些通用行的简单的动画片段即可。原创 2023-01-30 19:12:59 · 2206 阅读 · 0 评论 -
Unity如何实现一个弹框队列管理PopManager
一.前言:最近游戏中加的弹窗页面有点多,导致快上线时,频繁出现弹窗的问题,不是冲突了,就是出不来,所以我想从根源上解决这个问题。解决弹窗的问题,需要把握好3点:1.需要整理各个弹窗的优先级,2.需要清除各个弹窗的弹出条件和弹出时机。3.需要做好弹窗队列的统一管理。二.弹窗配置如果想更方便的管理弹窗的优先级,弹出条件,关闭时机等,我们必须有一个弹窗配置表。如下所示:id弹窗名称弹出优先级弹出条件mask切场景行为可重复入栈idnameprioritypag原创 2022-03-31 11:43:56 · 4931 阅读 · 0 评论 -
Unity如何接入Firebase Cloud Message远程推送
一. 前言:当一款游戏发展到一定阶段,必不可少的要接入推送SDK,推送功能,分为以下两种:本地推送:玩家打开游戏后,给手机系统通知设置推送的倒计时,等游戏关闭后,倒计时结束时,手机会自动打开通知给用户。由于是提前设定死的内容和计时器,所以灵活性差。远程通知:有一个服务器后台,可以随时随地给玩家发送通知提醒。好处是灵活,但是坏处就是无法根据用户的进度,定制推送内容。所有用户一把抓,走统一逻辑推送。二.远程推送我们今天要聊的远程推送,是基于Firebase Cloud Message的,如原创 2022-03-25 11:19:24 · 7539 阅读 · 0 评论 -
Unity如何接入本地推送 Mobile Notifications
一. 前言:当一款游戏发展到一定阶段,必不可少的要接入推送SDK,推送功能,分为以下两种:本地推送:玩家打开游戏后,给手机系统通知设置推送的倒计时,等游戏关闭后,倒计时结束时,手机会自动打开通知给用户。由于是提前设定死的内容和计时器,所以灵活性差。远程通知:有一个服务器后台,可以随时随地给玩家发送通知提醒。好处是灵活,但是坏处就是无法根据用户的进度,定制推送内容。所有用户一把抓,走统一逻辑推送。二.本地推送本地推送我们接入的是Unity自带的工具包Mobile Notification原创 2022-03-23 14:18:50 · 9907 阅读 · 0 评论 -
Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果
前言TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果,例如:字体流光,外发光颜色扰动,字体贴图等等。那我们就需要去扩展TextMeshPRo的shader功能了。如下图所示本文,我就带大家一起来扩展一下:如何扩展TextMeshProUGUITextMesh原始面板扩展功能后的面板扩展TextMeshPro原创 2022-01-15 21:03:35 · 7861 阅读 · 3 评论 -
xlua-framework之网络框架
前言一般我们说到网络框架,主要是指Socket网络框架,如果是Http的话,我们没有必要单独介绍了,简单用可以直接使用WWW或者UnityWebRequest,如果稍微复杂的使用,可以使用RestSharp库。所以我们本章主要讨论的是xlua-framework框架是如何实现socket网络框架的。虽然lua自带的有socket库,但是luasocket其实更适合写命令行工具。游戏里直接用为Lua写的网络库其实不多,大多数是从C++、C#封装一个自己的库,然后在lua中调用。当然也有luasocket实原创 2021-10-14 15:26:15 · 1502 阅读 · 0 评论 -
xlua-framework之UI框架
前言我们前面说过xluaframework这个框架,是一个纯lua的一个框架,也就是说我们所有的逻辑都可以在lua中实现,只有资源模块和网络模块是c#原生写的,但是也在lua中给我们包装的工具类,让我们更方便的使用。在框架的纯lua代码中,不得不说,ui框架是我最喜欢的,一套基于mvc的一套ui框架。说到MVC框架,很多人可能会说,mvc根本就不适合游戏,此言差矣,我这里要郑重其事的来说明一下。首先,mvc,是一种编程思想或者说框架思想,并不是一个设计模式,而这种思想的核心是分层,也就是说,我们把ui原创 2021-10-13 17:32:40 · 1832 阅读 · 1 评论 -
xlua-framework之资源管理器
一.前言xlua-framework是一个基于xlua的纯lua游戏框架,里面包含UI管理器,场景管理器,资源加载器,对象池管理器,网络管理器,DataCenter数据管理,还融合了一些ulua的小工具。总的来说,是比较全面的游戏框架,用起来是非常顺手。个人感觉比luaFramework的pureMVC要好用。二.C#端资源加载AssetBundleManager.cs框架的资源加载器是AssetBundleManager,主要功能就是加载预制体,图片等资源。资源加载的整体思路是根据AssetBun原创 2021-10-12 23:20:44 · 803 阅读 · 4 评论 -
unity如何接入puerts
一.前言puerts是游戏引擎下的TypeScript编程解决方案提供了一个JavaScript运行时提供通过TypeScript访问宿主引擎的能力(JavaScript层面的绑定以及TypeScript声明生成)二.puerts的优势JavaScript生态有众多的库和工具链,结合专业商业引擎的渲染能力,快速打造游戏相比游戏领域常用的lua脚本,TypeScript的静态类型检查有助于编写更健壮,可维护性更好的程序高效:全引擎,全平台支持反射Binding,无需额外(生成代码)步骤即可原创 2021-10-12 16:36:20 · 1594 阅读 · 0 评论 -
Xlua之高级篇-如何让lua支持async+await语法
前言C# 5.0时代引入async和await关键字,这两个关键字可以让我们更方便的写出异步代码。请参阅使用 Async 和 Await 的异步编程中的说明。async-await关键字使用 async 修饰符可将方法、lambda 表达式或匿名方法指定为异步。 如果对方法或表达式使用此修饰符,则其称为异步方法 。 如下示例定义了一个名为 ExampleMethodAsync 的异步方法:public async Task<int> ExampleMethodAsync(){原创 2021-10-10 22:39:53 · 2571 阅读 · 0 评论 -
Xlua之高级篇-让lua支持try-catch
一.前言由于 Lua 是一门嵌入式扩展语言,其所有行为均源于宿主程序中 C 代码对某个 Lua 库函数的调用。 (单独使用 Lua 时,lua 程序就是宿主程序。) 所以,在编译或运行 Lua 代码块的过程中,无论何时发生错误, 控制权都返回给宿主,由宿主负责采取恰当的措施(比如打印错误消息)。可以在 Lua 代码中调用 error 函数来显式地抛出一个错误。 如果你需要在 Lua 中捕获这些错误, 可以使用 pcall 或 xpcall 在 保护模式 下调用一个函数,类似try-catch语句。二.原创 2021-10-09 15:53:04 · 834 阅读 · 0 评论 -
Xlua之高级篇-字节码加密
Lua的加密一.前言一般我们说lua的加密,都是指把lua编译成字节码,因为lua的解释器执行lua代码时,也是先把lua源码转成字节码,然后再执行字节码,所以我们把lua转成字节码,实际上出了加密的作用外,还有加速lua执行效率的作用。我们要想把lua源码转成字节码,lua的编译器luac.exe必不可少,所以我们必须先编译lua的源码,编译出lua的编译器luac.exe。1.lua源码编译2.luac编译lua代码为字节码二.lua源码编译1.从Lua官网下载lua源码,解压后如下图原创 2021-10-08 22:55:34 · 1638 阅读 · 0 评论 -
Xlua之进阶篇
Xlua进阶上一篇我们介绍了xlua的官方示例,这篇我们就介绍下正式的项目中如何使用xlua,以及如何加载lua文件。1.加载xxxx.lua文件使用DoString执行:require 'xxxx'luaenv = new LuaEnv();luaenv.DoString("require 'xxxx'");2.自定义lua文件加载器 const string luaAssetbundleAssetName = "Lua"; const string luaScriptsFo原创 2021-10-07 22:00:49 · 396 阅读 · 0 评论 -
Xlua之入门篇Example详解
前言当前unity在手游平台主要的热更新方案有:Lua:高效、轻量级、可嵌入的脚本语言,也有做成熟的框架(Xlua,Tolua,Slua),速度最快,使用者也最多(魔兽世界,王者荣耀等)ILRuntime:全C#开发,最便捷省事的热更方案TypeScript:进两年新出的热更解决方案Puerts腾讯出品,和lua一样作为脚本语言来解析执行,实现热更,但是TS/JS是静态类型语言,自带语法提示,还有强大的js生态,让puerts成为了热更框架的一匹黑马今天我们只说Lua,很多小白在对原创 2021-10-07 19:39:22 · 660 阅读 · 0 评论 -
最新xlua和puerts性能对比
puerts是游戏引擎下的TypeScript编程解决方案,可以支持Unity和Unreal。由于TS/JS的强大的生态圈,这套热更框架势必会吸引很多人。我在研究了2天后,也很好奇js的性能和lua的性能到底差异有多大,我看tencen官方还有车神的博客都没有直接回答这个问题,只是有些人说,差异不大。所以我今天来做一个测试。使用的Puerts库地址https://github.com/Tencent/puerts使用的Xlua库地址https://github.com/Tencent/xLua原创 2021-09-24 20:29:11 · 4066 阅读 · 0 评论 -
Unity Shader之图片彩色图过渡到灰度图
Unity Shader之图片彩色图过渡到灰度图实现原理对于彩色转灰度,首先要知道一个公式:Gray = R0.299 + G0.587 + B*0.114;shader代码下面直接看shaderShader "Custom/GrayToColor"{ Properties { // 主图 _MainTex ("Albedo (RGB)", 2D) = "white" {} // 插值 _Lerp("Color Lerp",Range(0,原创 2020-12-10 21:49:23 · 1354 阅读 · 0 评论 -
Unity 如何使用KCP实现长连接
unity接入kcp一.前言KCP是一种基于UDP的上层协议,项目地址:KCP – A Fast and Reliable ARQ Protocol,以下是github上的介绍:KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。整原创 2021-01-16 18:58:24 · 5307 阅读 · 1 评论 -
Unity之MaterialPropertyBlock优化Drawcall
前言Unite 2017 中曾提到了使用材质属性块的优化建议,最近我们的一个项目中,需要使用N个(相同图集,不同纹理,不同颜色)的地块,直接修改Color和Texture,导致Drawcall数量过高。为此我们引入了MaterialPropertyBlock,优化后的drawcall降低到10个以内。所以本文,总结下MaterialPropertyBlock的使用和原理,希望能对大家有所帮助。官方描述MaterialPropertyBlock:材质属性块MaterialPropertyBlock原创 2021-09-06 12:40:34 · 1571 阅读 · 0 评论 -
Unity 帧同步游戏实现高光时刻
一.前言:高光时刻这个功能,对于常玩游戏的应该都不陌生,比如王者荣耀的高光分享功能。以前很多人为了分享自己的游戏高光,还需要全程录制,然后自己截取,非常的麻烦,现在王者荣耀已经可以云端生成视频了,大大节省了玩家的游戏成本,也是一个不错的推广方式。其实在王者荣耀之前就已经有很多游戏实现过这个功能,比如守望先锋的死亡回放,英雄联盟的死亡回放等,其实都是一个原理,只不过一个是死亡,一个是击杀。那么如何实现一个高光时刻呢?最开始我认为是游戏中开启一个摄像机全程录制游戏,最后再剪辑。但是仔细想想,根本行不通。且原创 2021-08-30 17:51:37 · 1096 阅读 · 0 评论 -
Unity之音频文件的内存优化
一.前言游戏开发过程中,可能会出现很多问题。比如:您的模型可能有太多的三角面,算法对于 CPU 来说消耗太大,因为太多的材质导致批处理将无法有效地工作。这些都是难题,作为游戏开发者,我们应该始终记住在视觉效果和性能之间保持良好的平衡。然而,有些事情看似非常简单,以至于我们常常忘记它们的存在,但它们会对您的游戏性能产生严重影响。比如:音频文件的错误的导入设置二.内存很重要使用 Unity 时,许多事情可以保持其默认设置。当然,在大多数情况下,默认设置并不是最佳的,但您的游戏应该可以正常运行。但是,此规原创 2021-08-30 17:31:51 · 1300 阅读 · 0 评论 -
Unity 之jenkins自动打包
1.Jenkins 是什么?jenkins官方网址:https://www.jenkins.io/zh/Jenkins是一款开源 CI&CD(持续集成&持续部署) 软件,用于自动化各种任务,包括构建、测试和部署软件。简易安装:Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。插件扩展:通过更新中心中的原创 2021-05-28 17:41:08 · 1361 阅读 · 0 评论 -
Unity3d如何实现四格漫画动态播放
前言四格漫画,百度百科:四格漫画,是以四个画面分格来完成一个小故事或一个创意点子的表现形式。四格漫画短短几格就涵盖了一个事件的发生、情节转折及幽默的结局。让人看完不觉莞尔,会心一笑或捧腹大笑。四格漫画着重点子创意,画面不需很复杂,角色也不需要太多,对白精简,让人容易轻松阅读。四格漫画是一种古老的艺术表现形式,四格漫画在表现上的特点主要强调叙事。早期的漫画除了传统的单幅外,就是四格讽刺漫画:开头,发展,高潮,结尾,所以是四格。六格和八格是后来才出现的,情节展开会比较多。其实四格漫画对格数已经没有限制。原创 2021-04-23 15:07:34 · 1746 阅读 · 1 评论 -
Unity-基于xlua的行为树框架
前言现在很多游戏中都有电脑人的设定,不管是网游或者端游,而电脑人的实现,一般都成为AI,人工智能(英语:artificial intelligence,缩写为AI),目前最有的AI是自带机器学习的AI,这种AI只需要设定规则,其他的都是它自己通过自己学习积累的数据,虽然这种AI很牛,但是目前手游或者端游中的电脑人,比如boss或者怪兽等,都还是提前设定好的,它的规则和行为都已经提前设定好了,它会根据玩家释放的技能或者血量等信息,改变自己的行为。这种AI一般都是有架构的,目前最常用的框架结构就是’有限状态机原创 2021-04-16 20:08:01 · 962 阅读 · 2 评论 -
ET 之网络框架
一.前言阅读这篇文章要求对ET框架的ECS结构有所了解ET框架简介:ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等等ET是主要以双端框架著称,所以可以想象一下网络其实是它的核心,我相信,应该是是作者付出了最多心血的杰作,下面我们就来拆解一下ET的网络框架ET包含原创 2021-01-28 15:20:38 · 3033 阅读 · 2 评论 -
unity实现游戏帧同步之确定性物理引擎
一.前言近几年,市面上出现了越来越多IO游戏,Moba游戏,这些游戏有一个共同的特点,就是需要多人同时进行对战,做多人同步对战游戏,有两个技术点是绕不开的:1.实时网络同步技术,2.确定性物理引擎。首先网络的话,如果游戏要求是帧同步,为了保证网络传输的速度,那一定是udp首选,但是需要处理下丢包的问题。这个问题我们不在这里多说。我们今天主要说的时确定性物理引擎的问题。那么什么是确定性物理引擎呢?确定性物理引擎这个要从普通的物理引擎来说起,比如Unity3D内置的NVIDIA出品的PhysX物理引擎和G原创 2021-01-12 12:40:35 · 7802 阅读 · 1 评论