学习使用Unity3D中Network Manager组件

         刚开始学习Unity网络系统时,自己尝试在网上找了一些文章和视频,跟着一步步的做,但后面发现代码一直显示报错,明明自己和视频里的一样,为什么会错呢?于是查看错误的部分,编译器上显示的是“Network被弃用”。根据我以往的经验,弃用的方法应该会有新的方法代替。我在U3D官方文档里查看有关的API,但并没有发现有其他的可用的方法,在手册里看到的“设计多人游戏项目”里需要添加组件,我尝试添加组件,但发现自己项目里没有对应的Network Manager组件,于是上网查如何使用Network Manager组件,发现Unity内置中已经没有Network有关方法了,需要在资源商店中添加Mirror资源进项目里,最终我可以正常使用Network Manager组件了。

以下就是关于Mirror的使用笔记:

1、首先创建一个名Network Manager的空游戏对象,在此对象中添加Network Manager、Kcp Transport、Network ManagerHUD三个组件。

        展开Network Manager,将需要测试的场景拖到Scene Management下的Offline和Online Scene中,然后注意Network Info中的Trangsport是否挂载了自身游戏对象(默认会自己挂载)。

2、 创建测试场景就不多说了,接下来就是玩家角色出生点的设置。创建一个名为SpawnPoint空游戏对象,挂载Network Start Position组件。可以多复制几个玩家生成点,放在不同的地方。

3、创建一个测试的游戏对象Player,添加Network Identity、Network Transform组件,勾选Network Transform组件中的Client Authoruty。Player生成预制体放在Assets中,删除Hierarchy中的Player。可自行为角色添加运动脚本,方便观察。

 Player脚本:

using UnityEngine;
using Mirror;

public class Player : NetworkBehaviour
{
    public override void OnStartLocalPlayer()
    {
        //摄像机绑定Player
        Camera.main.transform.SetParent(transform);
        Camera.main.transform.localPosition = Vector3.forward;
    }
    private void Update()
    {
        if (!isLocalPlayer) return;

        var moveX = Input.GetAxis("Horizontal") * Time.deltaTime * 110f;
        var moveZ = Input.GetAxis("Vertical") * Time.deltaTime * 4.0f;

        transform.Rotate(xAngle: 0, yAngle: moveX, zAngle: 0);
        transform.Translate(x: 0, y: 0, z: moveZ);
    }
}

4、返回到Network Manager游戏对象中,在其Network Manager下找到Player Prefab,将刚刚做好的Player预制体拖入其中。Player Spawn Methc可以选择Round Robin,表示循环生成。

5、 在File->Build Settings打包发布。(一定要是自己测试的Scenes哦

 6、运行打包好的游戏启动程序和Unity中的测试程序,一个界面选择Host,另一个界面选择Client,这样你就可以在电脑上实现简易的多用户联机了。

 最终的运行图片就不发了,如果还有不懂的可以点击下面链接参考教学视频学习(这是别人的视频)

UNITY|Mirror(简单的多人游戏)教程 [1/6]_哔哩哔哩_bilibili

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值