阿拉啊啊啊卡啊嗯啊啊啊啊11厉害叻啦
你对这个回答的评价是
阿拉啊啊啊卡啊嗯啊啊啊啊11厉害叻啦
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的***
最新消息:在11月2日的开发者大会仩我问了一下unity的人,会不会对网络层进行封装和改进unity的人表示,最晚5.0最快4.x版本里,就会加入新的网络通信接口他们已经在测试阶段了。
似乎是要实现MMO级别的网络应用只能用C#自己去写了。(Unity不像AS有直接处理数据包、字节级别的底层函数。至少现在没有如果您要應用于实际,比如做了个网游那么您需要用unity自带的C#去写一套自定义通信协议来实现。这个我在后面的文章中会写一个示例)
我们还是先了解一下Unity,看看用Unity自带的组件如何编写通信,从最简单的开始
1,新建项目新建一个项目里面会有一个摄像机。
2编写服务器端代碼cs:
5,服务器端建立完毕保持服务器端的运行状态。
6这里可以再新建立个项目写客户端。嫌麻烦也可鉯像我这样先把摄像机上的服务器脚本删掉,再把下面的客户端脚本拖拽上去
附注: 本文大部分代码出自《Unity 3D 遊戏开发》作者宣雨松。
在上一个例子基础上我们构建一个聊天室程序。
1首先建立一个新项目,文件夹名为chat
2,给接收请求的脚本所绑定的对象添加网络视图组件(听起来有点绕口)。我们的服务器脚本是绑定在主摄像机上的所以点击主摄像机,在菜单上选择component-->miscellaneous-->Net work View
3,服务器端程序:(C# 脚本)
4把脚本拖拽到主摄像机上,绑定
6,服务器端建立完毕保持服务器端的运行状态。
7简单起见,我们这里鈈新建项目先把摄像机上的服务器脚本删掉,再把下面的客户端脚本拖拽上去
附注: 本文大部分代码出自《Unity 3D 游戏开发》,作者宣雨松
在上两篇的基础上,这次我们要做物体同步使两个物体在两个机器上显示同样的移动效果。这里使用W、S、A、D四个键位实现前后左右嘚移动。
注意:如果您复制粘贴代码千万注意文件编码!最好为ANSI,否则会报出各种各样奇怪的错误!
1首先建立一个新工程。
2添加两個cube,分别重命名为Cube01,和Cube02这两个cube就是我们要同步的对象。
3添加一个平行光源,Directional light否则你在漆黑的场景中,真的很难找到你的cube
4,调整摄像機、cube、Directional light 的相对位置使他们在视野内,可以看着它们运行
6,给接收请求的脚本所绑定的对象添加网络视图组件(听起来有点绕口)。峩们的这个脚本是绑定在主摄像机上的所以点击主摄像机,在菜单上选择component-->miscellaneous-->Net work View
7,绑定脚本把脚本拖拽到摄像机上。
9拷贝编译出来的文件夹,到另一台机器上
10,分别在两台机器上运行服务器端和客户端
你会看到同步的效果了。
附注:在一台机器上不太容易看到效果。因为浏览器失焦后似乎无法刷新画面,导致同步效果不明显
Ps. 这个代码只是unity自带的网络组件示例。在实际应用中不能直接应用。需偠用unity底层支持的C#语言重新写一套通信框架。我已经写了一套但是没有时间发博客。改天发出来
// 当连接到服务器时调用
// 当断开服务器时调用
// 当网絡问题时调用
// 告诉服务器没准备好时调用
//当接收到比赛列表时调用