Can I use the Unity networking HLAPI without paying for the Unity Multiplayer service?

六眼飞鱼酱① 提交于 2019-11-27 11:03:51
Programmer

You can use Unity HLAPI without paying. Just don't use the Unity match making API, then you won't need to pay for anything.

You can get another player to directly connect to another player that is not on the same local network but you need to perform port forwarding on each computer. Players can perform port forwarding through their router settings but you don't want your player to go through this. You can do port-forwarding from C# script but it is complicated if you don't know anything about networking. There are many C# libraries that can do this so that you have to re-invent a wheel.

Once you get port forwarding working, you can then use the Unity standard API to directly connect to another player in another network.

If you want to take this further, you can have a script that sends the IP Address and the port number of the players to your server so that players can connect to each other automatically without having to manually type in the IP Address and the Port number of each computer.

EDIT :

Unity match making API = All classes inside UnityEngine.Networking.Match, such as NetworkMatch

Unity standard API = NetworkServer and NetworkClient

You should NOT use NetworkManager because most of its function depends on Unity match making API.

To create a network game that is free from Unity match making API, you just need the NetworkServer and the NetworkClient class.

To create Server:

NetworkServer.Listen

It has overloaded methods such as

public static bool Listen(string ipAddress, int serverPort);
public static bool Listen(int serverPort);

To create Client(Connect To Server):

NetworkClient.Connect
public void Connect(string serverIp, int serverPort);

You will lose functions such as creating and joining games if you don't want to use Unity match making API. You can use the NetworkServer and the NetworkClient I mentioned above to create a complete network game. Just create a server, connect to it and start sending and receiving information. It is worth it because when Unity's server goes down or begins to get slow your game would still be working unlike others.

NOTE: Unity is working on Application that lets you host your own game. This is NOT out yet but when they release it, you will be able to host your own game without Unity's Server by running that Application on your server. Right now, they want you to pay to use their some of their network codes but real coders won't have to do this.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!