unity基于NetWork的局域网对战游戏制作
现在的游戏大体分为2种,要么就是单机游戏,要么就是联网游戏。像现在比较火的游戏,比如手机游戏王者荣耀,比如端游LOL,这些都是联网游戏。再比如求生之路系列,鬼泣系列,生化危机系列这些都是单机游戏。但是我们会发现一个点,求生之路可以和朋友一起开黑。那这到底算单机还是联网游戏呢?还有,这个和朋友一起玩是怎么做到的?那么这就是我们今天讨论的话题了:基于NetWork的局域网对战游戏制作。先上效果图:
文章图片
这个demo包含玩家的移动旋转和子弹发射。那么这个效果怎么做出来呢?
首先,我们需要了解unity里面的局域网组件(NetWork系列)这个是unity已经做好了的,所以我们只要会用它就可以了。官方也有英文教程。感兴趣的可以去看看,学习学习。
首先我们需要创建一个空节点,然后在它上面添加组件:NetWorkManage,看名字都知道,这就是管理类。它非常重要。
文章图片
同时界面也要稍微弄下,不然不给提示,别人也不知道怎么用,不是吗?下面的HUD就是显示相关的,和上面的配套用。有了这两个,基本上就能组件局域网了。不信?那就保持这样,然后打包发表运行,同时运行unity。这样就有了两个客户端了,其中一个需要作为服务器,另一个就连接它,充当客户端。如图:
文章图片
我这里只打开一个,另一个一模一样的。然后你选择谁为主机,点击就可以了,就能出现像最前面那张图一样的情况。那么说明你就弄好了一个简单的局域网了。然后我们开始做局域网对战游戏。创建一个人物预制体,然后控制预制体。这里给预制体挂上脚本,然后就可以控制了。这里我直接给代码了,注释都有:
文章图片
然后光这样还不够,你会发现只有你的客户端有子弹生成,或者人物移动,其他客户端或者服务器没有同步到,这就很尴尬了。那么我们需要用到一个组件,来同步位置和旋转等:NetWorkTransform组件给玩家,然后再给玩家一个组件,这个组件就是表示它是一个网络物体,相当与一个标识:NetWorkIdentity。这样再重新打包,然后运行,你就可以发现两边同步了。这样我们的局域网对战游戏就差不多搞定了。
文章图片
【unity基于NetWork的局域网对战游戏制作】OK,那么整个的效果就搞定了。如果实在是不懂的,可以来找我拿源码demo哦。这个项目就到这里了。
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 基于爱,才会有“愿望”当“要求”。2017.8.12
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- unity探究UGUI的Image中sprite和overrideSprite的区别
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- NAT(网络地址转换技术)
- KubeDL HostNetwork(加速分布式训练通信效率)