Unity 2D多人连接网络学习
Posted シ゛甜虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 2D多人连接网络学习相关的知识,希望对你有一定的参考价值。
感谢M_Studio的无私分享,下面是他的主页
Photon:
https://www.photonengine.com/zh-CN/Photon
游戏素材:
https://assetstore.unity.com/publishers/44925
一、注册创建应用
创建
导入Photon和游戏素材发现有个这个提示,官网的意思是用到了试验性质的库存在风险
配置服务器信息,需要配置下Region,不配置随机分配,你和小伙伴可能不在一个服务器哦,我的配置如下
官方的Region
Region | Hosted in | Token |
---|---|---|
Asia | Singapore | asia |
Australia | Melbourne | au |
Canada, East | Montreal | cae |
Chinese Mainland1 (See Instructions) | Shanghai | cn |
Europe | Amsterdam | eu |
India | Chennai | in |
Japan | Tokyo | jp |
Russia | Moscow | ru |
Russia, East | Khabarovsk | rue |
South Africa | Johannesburg | za |
South America | Sao Paulo | sa |
South Korea | Seoul | kr |
Turkey | Istanbul | tr |
USA, East | Washington D.C. | us |
USA, West | San 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
以上是关于Unity 2D多人连接网络学习的主要内容,如果未能解决你的问题,请参考以下文章
游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)
游戏开发实战Unity使用Socket通信实现简单的多人聊天室(万字详解 | 网络 | TCP | 通信 | Mirror | Networking)
游戏开发实战Unity从零开发多人视频聊天功能,无聊了就和自己视频聊天(附源码 | Mirror | 多人视频 | 详细教程)