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