网络游戏开发(一)
来源:互联网 发布:5.1声道耳机推荐 知乎 编辑:程序博客网 时间:2024/05/22 23:21
最近在做一个第一人称局域网射击类游戏
我将分为三个篇幅来写一些开发方法和心得体会
这篇文章我来说下Unity网络组件的简单常用使用方法
直接上代码:
using UnityEngine;using System.Collections;public class NetworkManager : MonoBehaviour { // 最大客户端连接数 private int connections = 15; //连接端口号 private int listenPort = 8090; //是否选择nat private bool useNat = false; //IP地址 private string ip = "127.0.0.1"; //实例化的网络对象 public GameObject obj;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {} void OnGUI() { //如果客户端与服务器未发生连接 if (Network.peerType == NetworkPeerType.Disconnected) { if(GUILayout.Button("创建服务器")) { //创建服务器端 NetworkConnectionError isError = Network.InitializeServer(connections, listenPort, useNat); print(isError.ToString()); } if(GUILayout.Button("创建客户端")) { //连接服务器 NetworkConnectionError isError = Network.Connect(ip, listenPort); print(isError.ToString()); } } else if(Network.peerType==NetworkPeerType.Connecting) { print("正在连接"); } else if(Network.peerType==NetworkPeerType.Server) { GUILayout.Label("服务器创建成功"); } else if (Network.peerType == NetworkPeerType.Client) { GUILayout.Label("服务器连接成功"); } } //Called on the server whenever a Network.InitializeServer was invoked and has completed //只在服务器端调用 void OnServerInitialized() { Network.Instantiate(obj,new Vector3(0,20,0),Quaternion.identity,int.Parse(Network.player+" ")); } //当有客户端创建后将调用该函数 //只在服务器端调用 void OnPlayerConnected() { print("有客户端连接,the number value is:"+Network.player); } //当连接服务器后调用 //只在客户端中调用 void OnConnectedToServer() { print("成功连接服务器"); Network.Instantiate(obj, new Vector3(0, 20, 0), Quaternion.identity, int.Parse(Network.player + " ")); }}
注意:
这里实例化的游戏对象的同步方式是单方向的同步的,意思是象只会在实例化游戏对象的客户端往其他客户端同步(服务器端看做一个特殊的客户端)
就是说,当一个游戏对象a在客户端A实例化,一个游戏对象b在另外一个客户端B实例化。当a的位置在A中发生改变后,B中显示的a的位置会同步显示;当b的位置在A中发生改变后,由于游戏对象b不是在A中实例化的,所以B中不会同步改变b的位置。
将脚本添加到主摄像机里
这里我实例化的游戏对象是个立方体,保存在Prefab文件内
在立方体上添加如下图两个组件:
将立方体拖到obj对象上
ok!可以进行测试了
1 0
- 网络游戏开发(一)
- 网络游戏服务器开发(一)
- 用Unity进行网络游戏开发(一)
- 用 Unity 进行网络游戏开发(一)
- 直接用Socket TCP开发网络游戏(一)
- 网络游戏开发
- 2D网络游戏开发(网络篇)(一)
- 多核的网络游戏服务器开发 之 网络库(一)
- 2D网络游戏开发(网络篇)(一)
- Unity3D网络游戏开发之<每天学一点><一>
- 网络游戏开发入门指导
- 网络游戏服务器开发
- 网络游戏开发流程管理
- 音视频网络游戏开发
- 网络游戏开发大体分块
- 网络游戏服务器开发
- 网络游戏开发流程管理
- 网络游戏开发基础篇
- HDU 2568 前进
- spring mvc 的执行顺序
- C 截取字符串
- 斐波拉契数列
- 三极管的工作原理(详细、通俗易懂、图文并茂)
- 网络游戏开发(一)
- seq2seq学习笔记
- Android校招复习资料整理
- [iOS] 图像处理 - 一种高效裁剪图片圆角的算法
- 简单编程题目连载(一)
- 如何在多个iOSapp里共享数据
- 如何去除集合里面的重复元素
- bLue的游戏
- Android开发——Fragment简单示例(一)认识Fragment