当前位置:   article > 正文

Unity中实现局域网—Multiplayer HLAPI_unity unet 只支持局域网吗

unity unet 只支持局域网吗

一:前言

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标签属性:服务端和客户端回调函数


三:案例实现

  1. using UnityEngine;
  2. using UnityEngine.Networking;
  3. public class PlayerCotrol : NetworkBehaviour
  4. {
  5. private void Awake()
  6. {
  7. }
  8. public override void OnStartLocalPlayer()
  9. {
  10. Debug.Log("OnStartLocalPlayer");
  11. }
  12. private void Update()
  13. {
  14. if (!isLocalPlayer)
  15. {
  16. return;
  17. }
  18. if (Input.GetKeyDown(KeyCode.A))
  19. {
  20. CmdShow();
  21. }
  22. if (Input.GetKeyDown(KeyCode.D))
  23. {
  24. CmdHide();
  25. }
  26. }
  27. [Command]
  28. void CmdShow()
  29. {
  30. RpcShow();
  31. }
  32. [ClientRpc]
  33. void RpcShow()
  34. {
  35. GameObject.Find("Cube(Clone)").GetComponent<MeshRenderer>().enabled = true;
  36. }
  37. [Command]
  38. void CmdHide()
  39. {
  40. RpcHide();
  41. }
  42. [ClientRpc]
  43. void RpcHide()
  44. {
  45. GameObject.Find("Cube(Clone)").GetComponent<MeshRenderer>().enabled = false;
  46. }
  47. }
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号