unity3d实现玩家上线另一个玩家也能看见
2012-04-07 17:24
197 查看
网络方面我喜欢写成C/S的形式,但是官方的例子是peer-to-peer形式的,把客服端和服务端写在一起,我在看的时候就遇到了很问题。下面看看代码吧,以C/S的形式写的,参考官方的例子改的。
1. Server:服务端就是负责生成服务器,代码很简单和聊天室的一样。
2. Client:也很简单,也只是连接服务器,然后再加一个当连接服务器成功就实例化一个游戏对象的代码。再在客服端放入一个cube的prefab预制,再给cube预制加一个NetworkView,最后再给cube预制来段运动控制移动的代码就行了。
代买如下:
3. 把服务器开着,后面打开两个客服端,在两个客服端里分别有两个物体(物体被重叠了,你在一个客服端移动一个物体就能看到了)
4.我发现这些天出现很多错误都是出自于NetworkView是否同步,还有端口号的重复。如果遇到问题,大家可以从这两方面试试。还有就是,当客户端强制断开时,该客户端再次连接服务器时,场景中会比所有的客户端数多一个,所以大家最好不要强制断开,如果已经强制断开了,那好,你把端口号重新改一下。
5.数据交互方面随着慢慢的研究我再写出来。大家一起进步哈~~~~QQ:397319689(有点笨)~~~
1. Server:服务端就是负责生成服务器,代码很简单和聊天室的一样。
2. Client:也很简单,也只是连接服务器,然后再加一个当连接服务器成功就实例化一个游戏对象的代码。再在客服端放入一个cube的prefab预制,再给cube预制加一个NetworkView,最后再给cube预制来段运动控制移动的代码就行了。
代买如下:
public var playerPrefab : Transform; function OnConnectedToServer(){ Spawnplayer(); } function Spawnplayer(){ var myNewTrans : Transform = Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0); } function OnPlayerDisconnected(player: NetworkPlayer) { Debug.Log("Clean up after player " + player); Network.RemoveRPCs(player); Network.DestroyPlayerObjects(player); } function OnDisconnectedFromServer(info : NetworkDisconnection) { Debug.Log("Clean up a bit after server quit"); Network.RemoveRPCs(Network.player); Network.DestroyPlayerObjects(Network.player); Application.LoadLevel(Application.loadedLevel); }
3. 把服务器开着,后面打开两个客服端,在两个客服端里分别有两个物体(物体被重叠了,你在一个客服端移动一个物体就能看到了)
4.我发现这些天出现很多错误都是出自于NetworkView是否同步,还有端口号的重复。如果遇到问题,大家可以从这两方面试试。还有就是,当客户端强制断开时,该客户端再次连接服务器时,场景中会比所有的客户端数多一个,所以大家最好不要强制断开,如果已经强制断开了,那好,你把端口号重新改一下。
5.数据交互方面随着慢慢的研究我再写出来。大家一起进步哈~~~~QQ:397319689(有点笨)~~~
相关文章推荐
- unity3d实现玩家上线另一个玩家也能看见 .
- UNITY3D 一行代码实现一个物体保持面向另一个物体(旋转)
- Unity3D 巡逻敌兵探测玩家逻辑实现
- [Unity3D]Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示
- Unity3D NGUI蒙版效果实现方法
- 基于Unity3D的相机功能的实现(一)——VR相机
- Unity3D 实现类似“纪念碑谷”扭曲物体的效果
- [Unity3D]使用碰撞体做触发器实现简单的自动开门
- Div里面载入另一个页面的实现(取代框架)(AJax)
- Unity3D 实现镜头模糊效果
- Unity3d之利用Mesh绘制几何图形实现
- 【LensFlare镜头光晕】Unity3D奇葩实现
- Unity3D 初涉门径之物体移动(W,A,S,D)实现
- Unity3D内部串口通信和Unity3D与Winform程序的串口通信的实现和异常问题
- Unity3D之触摸输入实现在指定地形上拖拽物体
- 双边滤波C#及Unity3D龟速实现
- c#在主窗体panel 容器内嵌入另一个窗体(子窗体)的实现
- MySql中把一个表的数据插入到另一个表中的实现代码
- unity3d用动画遮罩(avatar mask)实现动画切换
- 原创]unity3D学习【功能实现】之一:坐标的转换以及物体的移动