Unity3D - 向同一地区的其他手机发送信息

P i*_*P i 5 mobile synchronization unity-game-engine

假设我们有一群10人,彼此距离不到20米.每个人都有一部手机(iPhone/android/Windows手机).

一个人点击屏幕发送消息.

这是其他人立即注册的.同步是关键.它必须在几毫秒内击中所有目标设备.

我怎么能这样做?

  • 网络套接字:我看不到这个工作,因为不能保证任何Wi-Fi网络.也许我将一部手机设置为接入点,其他手机连接到它?
  • 蓝牙:也许吧?
  • 音频:也许,声音的速度可能足够接近时间分辨率.但凌乱.
  • 还要别的吗?

我在Unity3D工作,虽然它允许移动插件我可以按平台单独实现.

只有iphone的解决方案仍然会引起人们的兴趣.

编辑:请不要只说"使用蓝牙"

编辑:改写问题的一种方法:是否可以设置一堆手机,以便可以在它们之间发送UDP数据包?(Ad-Hoc网络?)

编辑:链接: 在iOS中通过蓝牙在两个设备之间传输NSString通过蓝牙在 iOS和Android之间传输数据?

小智 -1

音频解决方案似乎是一种非常独特的技术。我不能说我曾经听说过以这种方式进行此事,但似乎是合法的。唯一的问题是,它可能会因麦克风质量而失去准确性。我做了一些研究,找到了一种在 c# 中播放正弦波/方波声音的方法(假设你不使用 javascript 来实现统一)。下面是播放它们的示例:

    int sampRate = 10000;
    short[] buf = new short[10000];
    double ampl = 0.25 * short.MaxValue;
    double freq = 5000;

    for (int s = 0; s < buf.Length; s++){

        buffer[s] = (short)(ampl * Math.Sin((2 * Math.PI * s * freq) / sampleRate));

    }
Run Code Online (Sandbox Code Playgroud)

至于获取声音并验证它是否匹配,我很困惑,这就是我的知识的终点,但我知道它是可能的,但可能需要比它的价值更多的工作。

要回答您的主要问题,最简单的方法是蓝牙。