Unity3d - Node.js tcp连接,客户端没有立即更新

时间:2016-11-22 11:42:44

标签: c# node.js unity3d tcp

我正在测试ActionBar.SetDisplayShowTitleEnabled(false);作为TCP服务器,node.js作为我即将到来的项目的客户端。

我创建了一个简单的聊天界面Unity3d,可以从服务器发送和接收数据。一切似乎工作正常,直到我测试2个客户端,一个在unity3d和另一个Unity editor,每当我发送消息时,服务器立即拾取并显示在Unity application。但是当我点击关注客户端时,客户端只更新显示界面,无论是terminal还是Unity editor本身。

以下是我的代码:

Node.js的

Unity application

client.cs

net = require('net');
var clients = [];

net.createServer(function (socket) {

  socket.name = socket.remoteAddress + ":" + socket.remotePort 
  clients.push(socket);

  socket.write("Welcome " + socket.name + "\n");
  broadcast(socket.name + " joined the chat\n", socket);

  socket.on('data', function (data) {
    broadcast(socket.name + "> " + data, socket);
  });

  socket.on('end', function () {
    clients.splice(clients.indexOf(socket), 1);
    broadcast(socket.name + " left the chat.\n");
  });

  function broadcast(message, sender) {
    clients.forEach(function (client) {
      if (client === sender) return;
      client.write(message);
    });
    process.stdout.write(message)
  }

}).listen(5000);

// Put a friendly message on the terminal of the server.
console.log("Chat server running at port 5000\n");

缺少什么?如何才能在我的所有客户端界面上看到即时更新?

1 个答案:

答案 0 :(得分:1)

这不是由您的代码引起的,而是由Unity编辑器引起的。默认情况下,统一编辑器不会在后台运行应用程序。

您可以在Edit > Project Settings > Settings-Player

中启用后台运行

应该有一个字段Run in background。打开它,即使你不专注也应该更新

另见Run In background