Unity 网络编程是开发多人游戏和实时应用的关键部分。以下是一些示例,展示了如何使用 Unity 进行网络编程。
示例列表
- 示例 1: 简单的客户端-服务器通信
- 示例 2: 实时多人游戏
- 示例 3: 使用Photon Unity Networking
示例 1:简单的客户端-服务器通信
在这个示例中,我们将创建一个简单的客户端-服务器应用程序,其中客户端发送消息到服务器,服务器再将消息广播回所有客户端。
// 客户端代码示例
public class Client : MonoBehaviour
{
private UnityNetworkClient networkClient;
void Start()
{
networkClient = new UnityNetworkClient();
networkClient.Connect("localhost", 7777);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
networkClient.Send("Hello, Server!");
}
}
}
// 服务器代码示例
public class Server : MonoBehaviour
{
private UnityNetworkServer networkServer;
void Start()
{
networkServer = new UnityNetworkServer();
networkServer.Start(7777);
}
void Update()
{
string message = networkServer.Receive();
if (message != null)
{
networkServer.Broadcast(message);
}
}
}
示例 2:实时多人游戏
在这个示例中,我们将创建一个简单的实时多人游戏,玩家可以在游戏中移动和射击。
// 玩家移动代码示例
public class PlayerMovement : MonoBehaviour
{
private Vector3 moveDirection;
void Update()
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
}
void FixedUpdate()
{
transform.Translate(moveDirection * Time.deltaTime);
}
}
// 玩家射击代码示例
public class PlayerShooting : MonoBehaviour
{
public GameObject bulletPrefab;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Instantiate(bulletPrefab, transform.position, Quaternion.identity);
}
}
}
示例 3:使用Photon Unity Networking
Photon Unity Networking 是一个流行的 Unity 网络库,可以用于创建多人游戏。
// 初始化Photon Unity Networking
public class PhotonManager : MonoBehaviourPunCallbacks
{
void Start()
{
PhotonNetwork.ConnectUsingSettings("v1");
}
void OnConnectedToMaster()
{
PhotonNetwork.JoinRandomRoom();
}
}
更多关于 Photon Unity Networking 的信息,请访问我们的官方文档。
Unity Networking