(001)Mirror 开始和迁移

Mirror 的诞生

Mirror诞生的过程 – 值得一读 !!!

功能层级设计

1.层级设计图:
在这里插入图片描述
2.客户端与服务器模式:

  • Client。
  • Server。
  • Host: Client + Server。
    在这里插入图片描述

脚本模板

  1. 下载 Mirror 模板
  2. 将下载的模板放到 unity 编辑器的模板就下面:
    在这里插入图片描述

在这里插入图片描述4.重启 unity:

在这里插入图片描述

迁移到Mirror的关键步骤

一、Network Manager

  1. Asset>Create>Mirror 创建 NetworkManager 脚本。
  2. 场景中新建 NetworkManager 空物体,并附加新建的 NetworkManager 脚本。
  3. NetworkManager 物体附加 NetworkManagerHUD 调试脚本。
    在这里插入图片描述

See(002)Mirror NetworkManage 的介绍

二、预制体

1.一个物体要做到基本的位置和旋转同步,需要两个组件。

  • NetworkIdentity:物体只有这个脚本,可以在场景中被看到,但是不会同步位置的变化等。
  • NetworkTransform:分为 Network Transform (Reliable) 和 Network/Network Transform (Unreliable),前者同步精度比后者可靠,但是有更高的消耗。

2.玩家预制体在 NetworkManager>PlayerObject 设置。

三、玩家的移动

1.见 预制体

2.在代码中控制 Player 的行为:

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

        // handle player input for movement
    }

    /// <summary>
    /// Called when the local player object has been set up.
    /// <para>This happens after OnStartClient(), as it is triggered by an ownership message from the server. This is an appropriate place to activate components or functionality that should only be active for the local player, such as cameras and input.</para>
    /// </summary>
    public override void OnStartLocalPlayer()
    {
        // handle camera so on.
    }
}

See Player Game Objects

四、游戏状态的同步

1.包含需要同步的数据类需要继承 Network Behaviours

2.用 SyncVars 标记需要同步的数据。

See Mirror 变量的同步

五、远程调用

1.广播的行为类需要继承 Network Behaviours

2.Player 需要广播的行为函数使用 Command 标记。

六、Non-player 游戏对象

1.比如敌人:

  • 添加了 NetworkIdentity 、**NetworkTransform ** 组件。
  • NetworkManager 注册的游戏对象。
  • 通过 Sync变量Rpc 更新脚本的。

七、游戏对象的创建

  • 修改对象生成器只在 Server 上运行(通过 isServerOnStartServer 函数 )。
  • 通过 NetworkServer.Spawn() 创建游戏对象。

八、玩家的出生位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值