CN111917852A - 基于Unity的多人网络同步系统及开发方法 - Google Patents
基于Unity的多人网络同步系统及开发方法 Download PDFInfo
- Publication number
- CN111917852A CN111917852A CN202010720055.5A CN202010720055A CN111917852A CN 111917852 A CN111917852 A CN 111917852A CN 202010720055 A CN202010720055 A CN 202010720055A CN 111917852 A CN111917852 A CN 111917852A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- unity
- client
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于Unity的多人网络同步系统及其开发步骤,由线程池、数据序列化、数据反序列化、二进制数据传输以及网络物体Network Object的多模块组成,其具体步骤为:创建Unity工程‑添加服务器与客户端‑新建C#脚本并编写同步行为组件‑添加NetworkObject组件并设置ID号‑最后添加同步行为组件,本发明为Unity开发人员提供了轻量级的、可快速搭建的网络同步系统;不需要太多的学习成本和服务器搭建的过程,让开发者专注于功能逻辑开发而不用担心网络传输、黏包丢包、网络查找等等底层内容;并且也为开发者提供了高效的数据序列化和反序列化的方法和接口,可用于文件存储和数据解析。
Description
技术领域
本发明涉及计算机软件开发技术领域,具体为一种基于Unity的多人网络同步系统及其开发步骤。
背景技术
随着社交软件、VR已经网络游戏的兴起,越来越多的开发者认识到具有多人网络同步功能的程序才更有竞争力。而Unity作为VR和网络游戏的主要开发平台,本身却不具备友好的多人网络开发的能力。
此前在Unity 2017本版中,官方出过多人网络同步相关模块,但是此模块由于自身和外部的各种原因导致后来停止更新并标为丢弃,后来官方的多人网络同步功能就一直处于空白状态。另外Unity平台有个网络同步的插件Photon也可以做到多人同步,但是Photon整个系统太过庞大,开发者的学习成本高,服务器搭建也比较麻烦。
发明内容
本发明的目的在于提供一种基于Unity的多人网络同步系统及其开发步骤,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于Unity的多人网络同步系统开发步骤,其具体步骤如下:
第一步,启动Unity程序Unity.exe,并创建Unity工程,再创建一个场景作为初始化入口场景;
第二步,如果是作为服务器,就添加Server组件;如果是客户端,就添加Client组件。Server组件和Client组件都需要设置相同的Application Identity和Port,前者用来标识同一个程序,后者用来规定数据传输的端口。由于服务器端设置比较简单,因为本发明已经封装好了几乎所有的功能,所以后面我们只说明一下客户端;
第三步,新建C#脚本并编写同步行为组件。在这个过程中最重要的一点是处理序列化和反序列化,这将在程序模块里面详细介绍。
第四步,添加NetworkObject组件并设置ID号。ID号是此物体的唯一标识符,任何消息的发送和到达都需要ID号来指引,ID号可以按照开发者的需要由系统自动分配或手动分配。
第五步,最后添加同步行为组件。至此,编辑器中的开发工作就完成了。
一种基于Unity的多人网络同步系统,由线程池、数据序列化和反序列化、二进制数据传输、Network Object(网络物体)几个模块组成。其中,
1.线程池。由于每个tcp/udp连接都需要有个单独的线程来维护,而频繁的创建和销毁线程会产生比较多的内存垃圾和性能开销,所以本发明在底层做了网络连接的线程池,在连接失效之后把线程内的数据重置并收集到线程池内,当需要创建新的连接的时候就从线程池里拿出线程并初始化使用,这样可以有效避免不必要的线程垃圾和性能开销。同样由于使用了多线程,导致线程间的数据交流会有冲突,为了避免主线程卡帧,收到的网络消息都会用一个线程安全的队列收集,并在主线程中对队列中的消息进行处理。
2.数据序列化和反序列化。不同的数据的结构和存储方式都是不一样的,比如vector2(二维向量)类型的数据用两个float(浮点数)类型来存储,而vector3(三维向量)类型的数据用4个float类型来存储。但是tcp/udp的网络传输只能使用二进制数据,所以对于需要传输的数据就要预先做二进制转换处理,这个过程称为序列化。所谓的序列化就是把数据转化为二进制的字节数组,按照顺序的队列来排列,而反序列化就是按照相同的顺序把数据从队列中取出并还原。本发明提供了完整的数据序列化和反序列化的工具,类名是缓冲写入器BufferWriter和缓冲读取器BufferReader,并且也有相应的接口可序列化对象ILexNetSerializable和可反序列化对象ILexNetDeserializable提供给复杂的结构体。另外从性能方面考虑,由于BufferWriter和BufferReader都是对内存块的操作,所以当两者有大量的创建和销毁的时候就会导致内存垃圾和性能问题。所以BufferWriter和BufferReader都有对象池的实现。以之前提到的vector3为例,序列化vector3对象的步骤是:从对象池中取出一个BufferWriter,然后拆分vector3为基本数据结构,结果是3个float数据xyz,再按照顺序把xyz分别用BufferWriter中的Write方法写入内存块中;反序列化vector3对象的步骤是:从对象池中取出一个BufferReader并传入内存块,然后按照xyz的顺序从BufferReader中使用ReadFloat来读取,再创建一个vector3的结构体并分别对xyz赋值。
3.二进制数据传输。当数据完成序列化之后就需要通过tcp/udp来进行传输,但是网络传输的过程并不是一直通顺的,有时候通畅有时候也会堵塞造成数据丢失,这就需要一个专门处理网络传输的中间件:所有需要传输的数据会预先收集到一个队列里,当上一个数据接收完毕之后就从队列里拿出一条数据来传输,这样可以保证不会让传输线程卡住假死,数据也会根据网络情况自动传输而不会丢失。
4.传输数据需要发送和接收,而NetworkObject就提供了发送的数据,也处理收到的数据,可以说NetworkObject充当网络系统中的逻辑处理的关键一环。在每次发送数据之前,NetworkObject都会添加一些自定义的协议内容:通道号、客户端id号、网络物体id号、服务器处理消息的方式等,NetworkObject也会根据要求选择从tcp可靠数据通道或者udp不可靠数据通道来进行传输。当收到新的消息后,NetworkObject会解析数据内容,判断消息是否正确,然后找到对应的网络物体并执行相应的方法。
进一步的,所述的多人网络同步系统,运行时流程步骤为:
第一步.启动程序之后先选择启动为服务器或是客户端。
第二步.启动为服务器之后,服务器会监听所有网卡上的连接;启动为客户端之后,客户端会通过udp广播找到服务器。当收到新的客户端连接请求之后就建立tcp和udp两个数据通道。tcp作为可靠的数据传输通道,用于开关、按钮这些重要的命令传输;udp作为不可靠的数据传输通道,用于显示动画、过渡这些不重要的命令传输。
第三步.当服务器收到消息后会解析消息内容,根据客户端定义的消息行为来决定此消息的处理方式:A发送给所有客户端B发送给除自己以外的客户端C发送给特定客户端D仅作数据存储,服务器按照这些处理方式对消息处理。
进一步的,所述的多人网络同步系统支持两种系统结构,A独立服务器+多个客户端、B内嵌服务器+多个客户端。A方式适用于客户端数量较多并且服务器性能要求较高的情况下使用;由于服务器独立运行,可以按照具体的使用场合来配置服务器的硬件性能,而且客户端的状态不会影响到服务器。B方式适用于客户端数量较少并且需要方便拆装的情况下使用,可以把任何一台客户端作为服务器,这样就可以节省一台独立服务器,可以在任何情况下快速搭建、使用、拆卸。
与现有技术相比,本发明的有益效果是:为Unity开发人员提供了轻量级的、可快速搭建的网络同步系统;不需要太多的学习成本和服务器搭建的过程,让开发者专注于功能逻辑开发而不用担心网络传输、黏包丢包、网络查找等等底层内容;并且也为开发者提供了高效的数据序列化和反序列化的方法和接口,可用于文件存储和数据解析。
附图说明
图1为本发明开发步骤流程示意图;
图2为本发明系统模块结构示意图;
图3为本发明运行流程示意图;
图4本发明的多人网络同步系统A结构结构示意图;
图5为本发明的多人网络同步系统B结构结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图4、图5所示,本发明支持两种系统结构:A独立服务器+多个客户端、B内嵌服务器+多个客户端。A方式适用于客户端数量较多并且服务器性能要求较高的情况下使用;由于服务器独立运行,可以按照具体的使用场合来配置服务器的硬件性能,而且客户端的状态不会影响到服务器。B方式适用于客户端数量较少并且需要方便拆装的情况下使用,可以把任何一台客户端作为服务器,这样就可以节省一台独立服务器,可以在任何情况下快速搭建、使用、拆卸。但无论是哪种系统结构,软件内部的实现都是类似的方式,如图1所示,下面就详细介绍一下软件在编辑器中开发的工作步骤,以创建个基本的网络同步为例:
1.启动Unity程序Unity.exe并创建Unity工程,再创建个场景作为初始化入口场景。
2.如果是作为服务器,就添加Server组件;如果是客户端,就添加Client组件。Server组件和Client组件都需要设置相同的Application Identity和Port,前者用来标识同一个程序,后者用来规定数据传输的端口。由于服务器端设置比较简单,因为本发明已经封装好了几乎所有的功能,所以后面我们只说明一下客户端。
3.新建C#脚本并编写同步行为组件。在这个过程中最重要的一点是处理序列化和反序列化,这将在程序模块里面详细介绍。
4.添加NetworkObject组件并设置ID号。ID号是此物体的唯一标识符,任何消息的发送和到达都需要ID号来指引,ID号可以按照开发者的需要由系统自动分配或手动分配。
5.最后添加同步行为组件。
至此,编辑器中的开发工作就完成了。但是还需要运行时的工作步骤才能组成完整的流程,下面根据图3来说明一下运行时流程:
1.启动程序之后先选择启动为服务器或是客户端。
2.启动为服务器之后,服务器会监听所有网卡上的连接;启动为客户端之后,客户端会通过udp广播找到服务器。当收到新的客户端连接请求之后就建立tcp和udp两个数据通道。tcp作为可靠的数据传输通道,用于开关、按钮这些重要的命令传输;udp作为不可靠的数据传输通道,用于显示动画、过渡这些不重要的命令传输。
3.当服务器收到消息后会解析消息内容,根据客户端定义的消息行为来决定此消息的处理方式:A发送给所有客户端B发送给除自己以外的客户端C发送给特定客户端D仅作数据存储,服务器按照这些处理方式对消息处理。
本发明主要包含线程池、数据序列化和反序列化、二进制数据传输、NetworkObject(网络物体)几个模块,下面按照图2所示内容来说明:
1.线程池。由于每个tcp/udp连接都需要有个单独的线程来维护,而频繁的创建和销毁线程会产生比较多的内存垃圾和性能开销,所以本发明在底层做了网络连接的线程池,在连接失效之后把线程内的数据重置并收集到线程池内,当需要创建新的连接的时候就从线程池里拿出线程并初始化使用,这样可以有效避免不必要的线程垃圾和性能开销。同样由于使用了多线程,导致线程间的数据交流会有冲突,为了避免主线程卡帧,收到的网络消息都会用一个线程安全的队列收集,并在主线程中对队列中的消息进行处理。
2.数据序列化和反序列化。不同的数据的结构和存储方式都是不一样的,比如vector2(二维向量)类型的数据用两个float(浮点数)类型来存储,而vector3(三维向量)类型的数据用4个float类型来存储。但是tcp/udp的网络传输只能使用二进制数据,所以对于需要传输的数据就要预先做二进制转换处理,这个过程称为序列化。所谓的序列化就是把数据转化为二进制的字节数组,按照顺序的队列来排列,而反序列化就是按照相同的顺序把数据从队列中取出并还原。本发明提供了完整的数据序列化和反序列化的工具,类名是BufferWriter(缓冲写入器)和BufferReader(缓冲读取器),并且也有相应的接口ILexNetSerializable(可序列化对象)和ILexNetDeserializable(可反序列化对象)提供给复杂的结构体。另外从性能方面考虑,由于BufferWriter和BufferReader都是对内存块的操作,所以当两者有大量的创建和销毁的时候就会导致内存垃圾和性能问题。所以BufferWriter和BufferReader都有对象池的实现。以之前提到的vector3为例,序列化vector3对象的步骤是:从对象池中取出一个BufferWriter,然后拆分vector3为基本数据结构,结果是3个float数据xyz,再按照顺序把xyz分别用BufferWriter中的Write方法写入内存块中;反序列化vector3对象的步骤是:从对象池中取出一个BufferReader并传入内存块,然后按照xyz的顺序从BufferReader中使用ReadFloat来读取,再创建一个vector3的结构体并分别对xyz赋值。
3.二进制数据传输。当数据完成序列化之后就需要通过tcp/udp来进行传输,但是网络传输的过程并不是一直通顺的,有时候通畅有时候也会堵塞造成数据丢失,这就需要一个专门处理网络传输的中间件:所有需要传输的数据会预先收集到一个队列里,当上一个数据接收完毕之后就从队列里拿出一条数据来传输,这样可以保证不会让传输线程卡住假死,数据也会根据网络情况自动传输而不会丢失。
4.传输数据需要发送和接收,而NetworkObject就提供了发送的数据,也处理收到的数据,可以说NetworkObject充当网络系统中的逻辑处理的关键一环。在每次发送数据之前,NetworkObject都会添加一些自定义的协议内容:通道号、客户端id号、网络物体id号、服务器处理消息的方式等,NetworkObject也会根据要求选择从tcp可靠数据通道或者udp不可靠数据通道来进行传输。当收到新的消息后,NetworkObject会解析数据内容,判断消息是否正确,然后找到对应的网络物体并执行相应的方法。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.一种基于Unity的多人网络同步系统开发方法,其具体步骤如下:
第一步,启动Unity程序Unity.exe,并创建Unity工程,再创建一个场景作为初始化入口场景;
第二步,Unity工程作为服务器,添加Server组件;Unity工程作为客户端,添加Client组件,Server组件与Client组件都需要设置相同的Application Identity和Port,前者用来标识同一个程序,后者用来规定数据传输的端口;
第三步,新建C#脚本并编写同步行为组件;
第四步,添加NetworkObject组件并设置ID号,所述ID号是此物体的唯一标识符,任何消息的发送和到达都需要ID号来指引,ID号可以按照开发者的需要由系统自动分配或手动分配;
第五步,最后添加同步行为组件,至此,编辑器中的开发工作完成。
2.一种基于Unity的多人网络同步系统,其特征在于,所述的多人网络同步系统由线程池、数据序列化、数据反序列化、二进制数据传输以及网络物体Network Object的多模块组成,其中,
所述的线程池在连接失效之后把线程内的数据重置并收集到线程池内;
所述的数据序列化把数据转化为二进制的字节数组,按照顺序的队列来排列,所述的数据反序列化按照相同的顺序把数据从队列中取出并还原;
所述的二进制数据传输为专门处理网络传输的中间件,二进制数据传输将所有需要传输的数据会预先收集到一个队列里,当上一个数据接收完毕之后就从队列里拿出一条数据来传输;
所述的网络物体Network Object提供发送的数据,也处理收到的数据,在每次发送数据之前,网络物体NetworkObject都会添加一些自定义的协议内容:通道号、客户端id号、网络物体id号、服务器处理消息的方式等,网络物体NetworkObject会根据要求选择从tcp可靠数据通道或者udp不可靠数据通道来进行传输,当收到新的消息后,网络物体NetworkObject会解析数据内容,判断消息是否正确,然后找到对应的网络物体并执行相应的方法。
3.根据权利要求2所述基于Unity的多人网络同步系统,其特征在于,所述的多人网络同步系统,运行时流程步骤为:
第一步.启动程序之后先选择启动为服务器或是客户端;
第二步.启动为服务器之后,服务器会监听所有网卡上的连接;启动为客户端之后,客户端会通过udp广播找到服务器,当收到新的客户端连接请求之后就建立tcp和udp两个数据通道,tcp作为可靠的数据传输通道,用于开关、按钮这些重要的命令传输;udp作为不可靠的数据传输通道,用于显示动画、过渡这些不重要的命令传输;
第三步.当服务器收到消息后会解析消息内容,根据客户端定义的消息行为来决定此消息的处理方式:A发送给所有客户端B发送给除自己以外的客户端C发送给特定客户端D仅作数据存储,服务器按照这些处理方式对消息处理。
4.根据权利要求2所述基于Unity的多人网络同步系统,其特征在于,所述的多人网络同步系统支持两种系统结构,
第一种方式A,独立服务器+多个客户端;A方式适用于客户端数量较多并且服务器性能要求较高的情况下使用;
第二种方式B,内嵌服务器+多个客户端;B方式适用于客户端数量较少并且需要方便拆装的情况下使用。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010720055.5A CN111917852A (zh) | 2020-07-23 | 2020-07-23 | 基于Unity的多人网络同步系统及开发方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010720055.5A CN111917852A (zh) | 2020-07-23 | 2020-07-23 | 基于Unity的多人网络同步系统及开发方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111917852A true CN111917852A (zh) | 2020-11-10 |
Family
ID=73280750
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010720055.5A Pending CN111917852A (zh) | 2020-07-23 | 2020-07-23 | 基于Unity的多人网络同步系统及开发方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111917852A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112473128A (zh) * | 2020-11-24 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 隔离游戏逻辑的方法、装置、电子设备和存储介质 |
| CN113596111A (zh) * | 2021-07-08 | 2021-11-02 | 南京智联达科技有限公司 | 一种基于分布式的节点间通信方法 |
Citations (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN201491032U (zh) * | 2009-08-21 | 2010-05-26 | 西安迅腾科技有限责任公司 | 一种大规模、多线程通信服务器 |
| CN101799751A (zh) * | 2009-12-02 | 2010-08-11 | 山东浪潮齐鲁软件产业股份有限公司 | 一种构建主机监控代理软件的方法 |
| CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
| WO2013126507A1 (en) * | 2012-02-21 | 2013-08-29 | Brass Monkey, Inc. | Mobile embedded servers systems and methods related thereto |
| US20140337734A1 (en) * | 2013-05-09 | 2014-11-13 | Linda Bradford | Content management system for a 3d virtual world |
| CN105006017A (zh) * | 2015-07-01 | 2015-10-28 | 国家电网公司 | 基于Unity动态技术生成三维场景仿真方法 |
| CN107454177A (zh) * | 2017-08-15 | 2017-12-08 | 合肥丹朋科技有限公司 | 网络通信的动态实现方法 |
| CN107679281A (zh) * | 2017-09-05 | 2018-02-09 | 国家电网公司 | 基于Unity动态生成的智能站三维场景仿真系统及实现方法 |
| US20180308287A1 (en) * | 2015-10-16 | 2018-10-25 | Bent Image Lab, Llc | Augmented reality platform |
| WO2018223800A1 (zh) * | 2017-06-08 | 2018-12-13 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
| US20190342386A1 (en) * | 2017-05-18 | 2019-11-07 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and system for playing scene animation |
| US20190362312A1 (en) * | 2017-02-20 | 2019-11-28 | Vspatial, Inc. | System and method for creating a collaborative virtual session |
| CN110659030A (zh) * | 2019-09-23 | 2020-01-07 | 深圳市众学科技有限公司 | Unity项目编译方法、系统、计算机设备及存储介质 |
| CN110673911A (zh) * | 2019-09-17 | 2020-01-10 | 张维加 | 一种数字文件的跨设备编辑系统 |
-
2020
- 2020-07-23 CN CN202010720055.5A patent/CN111917852A/zh active Pending
Patent Citations (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN201491032U (zh) * | 2009-08-21 | 2010-05-26 | 西安迅腾科技有限责任公司 | 一种大规模、多线程通信服务器 |
| CN101799751A (zh) * | 2009-12-02 | 2010-08-11 | 山东浪潮齐鲁软件产业股份有限公司 | 一种构建主机监控代理软件的方法 |
| CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
| WO2013126507A1 (en) * | 2012-02-21 | 2013-08-29 | Brass Monkey, Inc. | Mobile embedded servers systems and methods related thereto |
| US20140337734A1 (en) * | 2013-05-09 | 2014-11-13 | Linda Bradford | Content management system for a 3d virtual world |
| CN105006017A (zh) * | 2015-07-01 | 2015-10-28 | 国家电网公司 | 基于Unity动态技术生成三维场景仿真方法 |
| US20180308287A1 (en) * | 2015-10-16 | 2018-10-25 | Bent Image Lab, Llc | Augmented reality platform |
| US20190362312A1 (en) * | 2017-02-20 | 2019-11-28 | Vspatial, Inc. | System and method for creating a collaborative virtual session |
| US20190342386A1 (en) * | 2017-05-18 | 2019-11-07 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and system for playing scene animation |
| WO2018223800A1 (zh) * | 2017-06-08 | 2018-12-13 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
| CN107454177A (zh) * | 2017-08-15 | 2017-12-08 | 合肥丹朋科技有限公司 | 网络通信的动态实现方法 |
| CN107679281A (zh) * | 2017-09-05 | 2018-02-09 | 国家电网公司 | 基于Unity动态生成的智能站三维场景仿真系统及实现方法 |
| CN110673911A (zh) * | 2019-09-17 | 2020-01-10 | 张维加 | 一种数字文件的跨设备编辑系统 |
| CN110659030A (zh) * | 2019-09-23 | 2020-01-07 | 深圳市众学科技有限公司 | Unity项目编译方法、系统、计算机设备及存储介质 |
Non-Patent Citations (7)
| Title |
|---|
| 刘贤梅等: "Unity引擎下多人在线网络游戏的设计与开发", 《计算机系统应用》 * |
| 干建松: "基于unity局域网同步与多角色玩家的设计与实现", 《盐城工学院学报(自然科学版)》 * |
| 烂笔头-27: "手把手教你实现Unity网络同步", 《HTTPS://WWW.GAMERES.COM/828970.HTML》 * |
| 甄希金等: "基于VR技术的多人协同船舶消防系统开发及应用", 《船舶工程》 * |
| 谢宏兰: "基于Unity3D射击游戏的设计与实现", 《现代信息科技》 * |
| 郭骁等: "基于Unity3D的聊天室应用程序开发", 《电脑知识与技术》 * |
| 阚阔等: "基于分布式虚拟现实的连铸多人协作系统", 《物联网技术》 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112473128A (zh) * | 2020-11-24 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 隔离游戏逻辑的方法、装置、电子设备和存储介质 |
| CN112473128B (zh) * | 2020-11-24 | 2023-12-26 | 杭州电魂网络科技股份有限公司 | 隔离游戏逻辑的方法、装置、电子设备和存储介质 |
| CN113596111A (zh) * | 2021-07-08 | 2021-11-02 | 南京智联达科技有限公司 | 一种基于分布式的节点间通信方法 |
| CN113596111B (zh) * | 2021-07-08 | 2024-02-09 | 南京智联达科技有限公司 | 一种基于分布式的节点间通信方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10355911B2 (en) | System and method for processing information via networked computers including request handlers, process handlers, and task handlers | |
| EP2807555B1 (en) | Para-virtualized asymmetric gpu processors | |
| CN109542832B (zh) | 一种无锁机制的异构多核cpu间通信系统及方法 | |
| CN111917852A (zh) | 基于Unity的多人网络同步系统及开发方法 | |
| CN103164244A (zh) | 一种基于通用可扩展固件接口的固件系统远程更新方法 | |
| CN112527647B (zh) | 基于NS-3的Raft共识算法测试系统 | |
| US11392414B2 (en) | Cooperation-based node management protocol | |
| CN107391736A (zh) | 一种页面显示方法及装置 | |
| CN108415740B (zh) | 一种应用于数据分析任务的工作流调度方法 | |
| CN112764877A (zh) | 一种用于硬件加速设备与docker内进程通信的方法与系统 | |
| CN107423117A (zh) | 在云存储系统中虚拟机的创建方法和装置 | |
| CN102455951A (zh) | 一种虚拟机容错方法和系统 | |
| CN101815089B (zh) | Web高端磁盘阵列控制器命令执行方法及系统 | |
| CN114064268B (zh) | 一种消息处理方法、装置及设备 | |
| CN110445874A (zh) | 一种会话处理方法、装置、设备和存储介质 | |
| CN109669788A (zh) | 面向直接内存访问互连通信的多核芯片的mpi实现方法 | |
| CN114095343A (zh) | 基于双活系统的容灾方法、装置、设备及存储介质 | |
| CN106598599B (zh) | 一种程序的执行方法和设备 | |
| CN105187257B (zh) | 一种舰船作战系统模拟器体系及其信息处理方法 | |
| CN111290346B (zh) | 用于铁路通信设备基于实时操作系统的同步阻塞状态机 | |
| CN113472557A (zh) | 一种虚拟网元处理方法、装置及电子设备 | |
| CN117892783A (zh) | 一种类脑处理单元、类脑芯片、系统及数据处理方法 | |
| KR20200107124A (ko) | 이종 클러스터 기반의 분산 딥러닝 방법 및 이를 위한 장치 | |
| US10824482B1 (en) | Remote operations application programming interface | |
| US9509780B2 (en) | Information processing system and control method of information processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |