Unity结合C++开发服务器实现多人游戏(一)

构建服务器


首先,让我们了解单人游戏代码。

利用W,A,S,D键控制玩家角色方向.


观察Unity GameObject对象的LocalPlayer.打开PlayerControl.cs添加到LocalPlayer,查看Update函数显示以下代码

void Update()

{

    // LocalPlayer GameObject and here

    if (Input.GetKey("a"))

    {

        carAngle -= carRotateSpeed * Time.deltaTime;

    }

.......

在此教程中,我们需要一个GUI从单人游戏访问服务器.Unity场景中,我们打开游戏对象 GameObject NetManager. NetManager中配备了NetManager.cs.同时打开OnGUI函数

    void OnGUI()

    {

        if (m_state == MyState.Disconnected || m_state == MyState.Connecting)

        {

            GUI.Label(new Rect(10, 10, 300, 30), "## ProudNet Sample ##");

...

此函数是连接服务器的图形用户界面.目前不进行任何操作.

函数中的m_state变量起初是Disconnected状态.连接服务器过程时转变为Connecting.连接成功转变为Connected.状态为ConnectedGUI消失.以上所述是OnGUI函数的功能.

选择GameObject NetManager对象后,启用Inspector.

 

构建服务器

访问客户端创建服务器.创建一个名为CharacterMove/SimpleServerC++ Console Application,主函数main如下.

int main()

{

    SimpleServer server;

    server.Run();

 

    return 0;

}

定义class SimpleServer.然后,添加Run成员函数.

void SimpleServer::Run()

{

    string line;

    getline(std::cin, line);

}

实际上,现在的服务器不进行任何操作.

按需要选择平台 Android, Linux Server, iOS.此讲座只针对Windows.


第二篇:Unity结合C++开发服务器实现多人游戏(二)

展开阅读全文

没有更多推荐了,返回首页