游戏开发之Unity学习(十一)——多人游戏与网络

本博客介绍Unity3D从5.0版本开始的UNet开发API,适用于简单和高级多人游戏。通过高阶API,利用NetworkManager管理网络,并详细讲解了如何创建和配置NetworkManager对象、玩家及子弹预制件,以及编写玩家控制和战斗系统相关脚本。通过实例演示了多人游戏的实现过程。
摘要由CSDN通过智能技术生成

unity3d网络游戏开发API

从 Unity 5.0 开始,提供了全新的 UNet 开发网络游戏,面向两种类型的用户:

  • 使用 Unity 开发简单多人游戏,应该从高阶 API 开始
    1. 使用 “NetworkManager” 管理网络,控制游戏对象网络状态
    2. 从客户端调用服务器函数 或 从服务器调用客户端函数
    3. 使用网络组件,可视化编辑程序
    4. nternet 服务支持
  • 用户自定义网络基础设施或高级多人游戏,应该从 NetworkTransport API 开始
    1. 使用 UDP 等
    2. 自建复杂的网络结构

本篇博客使用的是高级API。

演示视频地址

unity3d开发网络多人游戏

  1. 新建 NetworkManager对象:
    • 首先创建一个空对象,将其命名为NetworkManager;
    • 为该对象添加组件:NetworkManager,NetworkManagerHUB。
  2. 制作玩家预制:
    • 本次实验使用的是巡逻兵那篇博客的人物素材,需要删除玩家预制下的摄像机,命名为player;
    • 为玩家预制添加组件:NetworkIdentity(Local Player Authority需要设置为true,使客户端可以控制玩家),NetworkTransform(为服务器提供玩家位置等信息)。
  3. 注册玩家预制:
    将玩家预制拖入NetworkManager的swap info的Player Prefab插槽。
  4. 注册子弹预制:
    • 新建球体对象,命名为Bullet,scale设置为0.2;
    • 给子弹rigidbody组件,取消重力;
    • 添加新脚本bullet.cs,bullet.cs用来处理子弹的碰撞事件;
    • 用 Add 按钮添加一个新的 spawn 预制件,将 Bullet 预制件拖入新的 spawn 预制插槽。
  5. 玩家控制脚本:
    • 新建名为Network.cs的玩家控制脚本;
    • Network.cs脚本中,控制玩家的移动和攻击,控制摄像机跟随。
    • 新建Combat.cs,改脚本控制玩家血条值;
  6. 添加场景控制:
    新建FirstSceneController.cs,该脚本加载摄像机和地图;

各cs文件代码:

/* *
 * Network.cs
 * 该脚本中控制玩家移动、攻击,控制摄像机跟随
 * */

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class Network : NetworkBehaviour {
    public GameObject bulletPrefab;
    public Color color = Color.red;
    private float speed = 3;
    private float rspeed = 90;
    priva
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值