[Unity Mirror] 入门

  本文档描述了使用 Mirror 创建多人游戏的步骤。这里描述的过程是真实游戏实际过程的简化、更高级别的版本;它并不总是像这样工作,但它提供了该过程的基本配方。

视频教程

查看这些精彩视频,向您展示如何开始使用Mirror。

脚本模板

  更快地创建新的网络行为和其他常用脚本
请参阅脚本模板。

NetworkManager设置

  • 向场景中添加一个新的游戏对象并将其重命名为“NetworkManager”。
  • 将 NetworkManager 组件添加到“NetworkManager”游戏对象。
  • 将 NetworkManagerHUD 组件添加到游戏对象。这提供了用于管理网络游戏状态的默认 UI。

请参阅使用 NetworkManager。

Player 预制件

  • 在游戏中找到玩家游戏对象的 Prefab,或者从玩家游戏对象创建 Prefab。
  • 将 NetworkIdentity 组件添加到玩家 Prefab
  • 将 NetworkManager 的 Spawn Info 部分中的 playerPrefab 设置为 player Prefab
  • 如果场景中存在玩家游戏对象实例,则将其从场景中移除

有关详细信息,请参阅Player Objects。

Player 移动

  • 将 NetworkTransform 组件添加到Player Prefab
  • 选中组件上的客户权限复选框。
  • 更新输入和控制脚本以尊重 isLocalPlayer。
  • 覆写 OnStartLocalPlayer 为玩家控制场景中的主摄像机。

例如,此脚本仅处理本地Player的输入:

using UnityEngine;
using Mirror;

public class Controls : NetworkBehaviour
{
    void Update()
    {
        // exit from update if this is not the local player
        if (!isLocalPlayer) return;

        // handle player input for movement
    }
}

基本玩家游戏状态

  • 将包含重要数据的脚本制作成 NetworkBehaviours 而不是 MonoBehaviours
  • 将重要的成员变量制作成 SyncVars

请参阅状态同步。

远程操作

  • 将执行重要操作的脚本制作成 NetworkBehaviours 而不是 MonoBehaviours
  • 将执行重要玩家操作的函数更新为命令

请参阅远程操作。

非玩家游戏对象

修复非玩家预制件,例如敌人:

  • 添加 NetworkIdentity 组件
  • 添加 NetworkTransform 组件
  • 向 NetworkManager 注册可生成的 Prefab
  • 使用游戏状态和Actions更新脚本

Spawners

  • 可能将生成器脚本更改为 NetworkBehaviours
  • 将生成器修改为仅在服务器上运行(使用 isServer 属性或 OnStartServer() 函数)
  • 为创建的游戏对象调用 NetworkServer.Spawn()

玩家生成位置

  • 添加一个新的游戏对象并将其放置在player’s start location
  • 将 NetworkStartPosition 组件添加到新的游戏对象

你可能感兴趣的:(Unity,Mirror,unity,Mirror,网络)