Unity中实现局域网—Multiplayer HLAPI
Posted Hello Bug.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中实现局域网—Multiplayer HLAPI相关的知识,希望对你有一定的参考价值。
一:前言
Multiplayer HLAPI在之前叫做UNet,可以开发联机网络游戏
二:介绍
——NetworkBehaviour:网络的基础类,继承自 MonoBehaviour,如果需要支持网络特性,需要继承NetworkBehaviour而不是 MonoBehaviour
——NetworkManager:网络管理类,StartServer、StopServer、StartClient、StopClient
——NetworkManagerHUD:添加此组件会自动添加NetworkManager组件,它会在场景中显示交互的HUD
——NetworkIdentity:所有网络相关的游戏物体或预制体都需要添加的组件
——NetworkTransform:实现对象的transform同步
——Command标签属性: 由客户端发起调用,在服务器执行(方法以Cmd开头)
——ClientRpc标签属性:由服务器发起调用,在客户端执行(方法以Rpc开头)
——SyncVar标签属性、SyncEvent标签属性:标记了服务器和客户端上需要同步的变量和事件,在对标识的变量或时间进行操作时,会同时将信息发送至服务器与客户端
——ServerCallback标签属性、ClientCallback标签属性:服务端和客户端回调函数
三:案例实现
using UnityEngine;
using UnityEngine.Networking;
public class PlayerCotrol : NetworkBehaviour
private void Awake()
public override void OnStartLocalPlayer()
Debug.Log("OnStartLocalPlayer");
private void Update()
if (!isLocalPlayer)
return;
if (Input.GetKeyDown(KeyCode.A))
CmdShow();
if (Input.GetKeyDown(KeyCode.D))
CmdHide();
[Command]
void CmdShow()
RpcShow();
[ClientRpc]
void RpcShow()
GameObject.Find("Cube(Clone)").GetComponent<MeshRenderer>().enabled = true;
[Command]
void CmdHide()
RpcHide();
[ClientRpc]
void RpcHide()
GameObject.Find("Cube(Clone)").GetComponent<MeshRenderer>().enabled = false;
以上是关于Unity中实现局域网—Multiplayer HLAPI的主要内容,如果未能解决你的问题,请参考以下文章
使用 Photon Unity Network(多人游戏)在 Unity 中实时同步
我可以在不支付 Unity Multiplayer 服务的情况下使用 Unity 网络 HLAPI 吗?
Unity3D编辑器扩展Unity3D中实现Text的字体的替换