Unity网络通信三同步物体Word下载.docx
- 文档编号:18622922
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:6
- 大小:15.61KB
Unity网络通信三同步物体Word下载.docx
《Unity网络通信三同步物体Word下载.docx》由会员分享,可在线阅读,更多相关《Unity网络通信三同步物体Word下载.docx(6页珍藏版)》请在冰豆网上搜索。
GameObjectcube02=null;
GameObjectmyself=null;
GameObjectanother=null;
//Usethisforinitialization
voidStart(){
cube01=GameObject.Find("
Cube01"
);
cube02=GameObject.Find("
Cube02"
}
//OnGUI方法,所有GUI的绘制都需要在这个方法中实现
voidOnGUI(){
//Network.peerType是端类型的状态:
//即disconnected,connecting,server或client四种
switch(Network.peerType){
//禁止客户端连接运行,服务器未初始化
caseNetworkPeerType.Disconnected:
StartServer();
break;
//运行于服务器端
caseNetworkPeerType.Server:
OnServer();
//运行于客户端
caseNetworkPeerType.Client:
//正在尝试连接到服务器
caseNetworkPeerType.Connecting:
voidStartServer(){
GUILayout.Label("
同步测试:
"
//当用户点击按钮的时候为true
if(GUILayout.Button("
创建服务器"
)){
//初始化本机服务器端口,第一个参数就是本机接收多少连接
NetworkConnectionErrorerror=Network.InitializeServer(12,Port,false);
//连接状态
switch(error){
caseNetworkConnectionError.NoError:
default:
Debug.Log("
服务端错误"
+error);
连接服务器"
NetworkConnectionErrorerror=Network.Connect(IP,Port);
客户端错误"
voidOnServer(){
服务端已经运行,等待客户端连接"
//Network.connections是所有连接的玩家,数组[]
//取客户端连接数.
intlength=Network.connections.Length;
//按数组下标输出每个客户端的IP,Port
for(inti=0;
i&
lt;
length;
i++){
客户端"
+i);
客户端ip"
+Network.connections[i].ipAddress);
客户端端口"
+Network.connections[i].port);
-------------------------------"
断开服务器"
Network.Disconnect();
//接收请求的方法.注意要在上面添加[RPC]
[RPC]
voidProcessMove(stringmsg,NetworkMessageInfoinfo){
//刚从网络接收的数据的相关信息,会被保存到NetworkMessageInfo这个结构中
stringsender=info.sender.ToString();
//看脚本运行在什么状态下
NetworkPeerTypestatus=Network.peerType;
if(status==NetworkPeerType.Server){
myself=cube01;
//假如运行在server状态下,那么自己就是cube1
another=cube02;
}else{
myself=cube02;
//假如运行在client状态下,那么自己就是cube2
another=cube01;
//假如是自己发送的信息
if(sender=="
-1"
){
if(msg=="
W"
myself.transform.Translate(Vector3.forward*Time.deltaTime*moveSpeed);
S"
myself.transform.Translate(Vector3.back*Time.deltaTime*moveSpeed);
A"
myself.transform.Translate(Vector3.left*Time.deltaTime*moveSpeed);
D"
myself.transform.Translate(Vector3.right*Time.deltaTime*moveSpeed);
//假如是别人发送的信息
else{
another.transform.Translate(Vector3.forward*Time.deltaTime*moveSpeed);
another.transform.Translate(Vector3.back*Time.deltaTime*moveSpeed);
another.transform.Translate(Vector3.left*Time.deltaTime*moveSpeed);
another.transform.Translate(Vector3.right*Time.deltaTime*moveSpeed);
//Updateiscalledonceperframe
voidUpdate(){
//前移
if(Input.GetKeyDown(KeyCode.W)){
wwwwwwwww|"
networkView.RPC("
ProcessMove"
RPCMode.All,"
if(Input.GetKey(KeyCode.W)){
//后退
if(Input.GetKeyDown(KeyCode.S)){
sssssssss!
if(Input.GetKey(KeyCode.S)){
//向左移动
if(Input.GetKeyDown(KeyCode.A)){
if(Input.GetKey(KeyCode.A)){
//向右移动
if(Input.GetKeyDown(KeyCode.D)){
if(Input.GetKey(KeyCode.D)){
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity 网络 通信 同步 物体