标签:csdn time tip eid text 本机 函数 log sim
原文地址: http://blog.csdn.net/cocos2der/article/details/51006463
本文主要讲述了如何使用Multiplayer Networking开发多人游戏,文中实例、代码来源于Unity官方教程。
原文:INTRODUCTION TO A SIMPLE MULTIPLAYER EXAMPLE
Networking Overview
The High Level API
Network System Concepts
OK,现在可以开始了!
主要使用NetworkManager和NetworkManagerHUD(一个简易的UI面板)
NetworkManager组件的属性:
NetworkManagerHUD组件属性:
运行后,此时运行后效果(该UI就是NetworkManagerHUD):
本实例中玩家GameObject效果(后面会加上武器):
开始创建Player GameObject:
为了给Player添加uniqueID作为网络中的唯一ID,我们需要给Player添加NetworkIdentity组件
最后创建Player的Prefab预制体:
PlayerController.cs:
using UnityEngine; public class PlayerController : MonoBehaviour { void Update() { var x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f; var z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.Rotate(0, x, 0); transform.Translate(0, 0, z); } }
运行模式下,NetworkManagerHUD将会显示默认的UI
点击LAN Host(H),将本机作为主机Host开始游戏
此时NetworkManager将会创建一个Player在场景中,NetworkManagerHUD将会显示为游戏中UI
开始测试在客户端中控制玩家Player
为了测试多玩家,所以我们需要两个客户端。在这里我们可以Build一个Mac版本(或者Windows版本)作为一个玩家,然后Unity自己运行作为一个玩家。OK,下面开始Build一个Mac版本.
现在回到Unity,将Unity作为另一个玩家加入游戏。
此时你应该看到了两个玩家在游戏中。
上一篇中,玩家操作移动会同时控制同屏内的所有Player,且只有自己的屏幕生效。因为咱们还没有同步Transform信息。
下面我们通过UnityEngine.Networking组件来实现玩家控制各自Player
using UnityEngine.Networking;
public class PlayerController : NetworkBehaviour
在Update函数中添加如下方法
if (!isLocalPlayer) { return; }
最后你的PlayerController内容如下:
using UnityEngine; using System.Collections; using UnityEngine.Networking; public class PlayerController : NetworkBehaviour { // Update is called once per frame void Update () { if (!isLocalPlayer) { return; } var x = Input.GetAxis("Horizontal") * Time.deltaTime * 10.0f; var z = Input.GetAxis("Vertical") * Time.deltaTime * 10.0f; transform.Translate(Vector3.right * x); //主角前后移动 transform.Translate(Vector3.forward * z); } public override void OnStartLocalPlayer() { GetComponent<MeshRenderer>().material.color = Color.blue; } }
使用Multiplayer Networking做一个简单的多人游戏例子-1/2
标签:csdn time tip eid text 本机 函数 log sim
原文地址:http://www.cnblogs.com/ye-ming/p/7976317.html