Unity 2D多人连接网络学习

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 2D多人连接网络学习相关的知识,希望对你有一定的参考价值。

感谢M_Studio的无私分享,下面是他的主页

M_Studio的个人空间_哔哩哔哩_Bilibili

Photon:

https://www.photonengine.com/zh-CN/Photon

游戏素材:

https://assetstore.unity.com/publishers/44925

一、注册创建应用

 创建

导入Photon和游戏素材发现有个这个提示,官网的意思是用到了试验性质的库存在风险

配置服务器信息,需要配置下Region,不配置随机分配,你和小伙伴可能不在一个服务器哦,我的配置如下

官方的Region

RegionHosted inToken
AsiaSingaporeasia
AustraliaMelbourneau
Canada, EastMontrealcae
Chinese Mainland1 (See Instructions)Shanghaicn
EuropeAmsterdameu
IndiaChennaiin
JapanTokyojp
RussiaMoscowru
Russia, EastKhabarovskrue
South AfricaJohannesburgza
South AmericaSao Paulosa
South KoreaSeoulkr
TurkeyIstanbultr
USA, EastWashington D.C.us
USA, WestSan Joséusw

新建一个NetworkLauncher,然后创建一个脚本

 给玩家增加Photon View

修改PlayerControler代码

 将Player添加到网络资源中

运行游戏如果出现下面错误

NullReferenceException: Object reference not set to an instance of an object PlayerControler.Movement () (at Assets/Script/PlayerControler.cs:39) PlayerControler.Update () (at Assets/Script/PlayerControler.cs:33)

说明摇杆的游戏对象是空的

通过下面代码解决

private VariableJoystick _variableJoystick;
private GameObject _variableJoystickGameObject;
void Start()
{
_variableJoystickGameObjec
t = GameObject.Find("Variable Joystick");
        VariableJoystick variableJoystick = _variableJoystickGameObject.GetComponent<VariableJoystick>();
        _variableJoystick = variableJoystick;
}

 好了可以预览游戏啦

 NetworkLauncher中的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;

public class NetworkLauncher : MonoBehaviourPunCallbacks
{
    // Start is called before the first frame update
    void Start()
    {
        PhotonNetwork.ConnectUsingSettings();
    }

    public override void OnConnectedToMaster()
    {
        base.OnConnectedToMaster();
        Debug.LogWarning("Welcome Master!");
        PhotonNetwork.JoinOrCreateRoom("Room", new Photon.Realtime.RoomOptions() { MaxPlayers = 20 }, default);
    }

    public override void OnJoinedRoom()
    {
        base.OnJoinedRoom();
        PhotonNetwork.Instantiate("Player", new Vector2(1, 1), Quaternion.identity, 0);
    }
}

完整工程下载,Unity版本:2021.1.19f1c1

https://download.csdn.net/download/g313105910/25250638

以上是关于Unity 2D多人连接网络学习的主要内容,如果未能解决你的问题,请参考以下文章

游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)

游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)

如何用unity做一个2d小游戏

2D游戏案例:Unity答题系统(MySQL版)

在Unity中使用Photon(网络多人联机)

游戏开发实战Unity从零开发多人视频聊天功能,无聊了就和自己视频聊天(附源码 | Mirror | 多人视频 | 详细教程)