mobile - tener - Unity3D-Enviar mensaje a otros teléfonos móviles en la misma vecindad
en que celulares se puede tener whatsapp 2018 (6)
La solución de audio parece una técnica única. No puedo decir que haya escuchado hablar de eso de esa manera, pero parece legítimo. Los únicos problemas son que podría perder precisión debido a la calidad del micrófono. Investigué un poco y encontré una forma de reproducir sonidos de onda sinusoidal / cuadrada en c # (suponiendo que no usas javascript para la unidad). Aquí hay un ejemplo para jugarlos:
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));
}
En cuanto a obtener el sonido y validarlo para ver si es una coincidencia, estoy perplejo, ahí es donde mi conocimiento termina, pero sé que es posible, pero podría tomar más trabajo de lo que vale.
Para responder a su pregunta principal, el método más fácil sería bluetooth.
Digamos que tenemos un grupo de 10 personas, dentro de 20m el uno del otro. Cada persona tiene un teléfono móvil (iPhone / Android / teléfono con Windows).
Y una persona toca la pantalla para enviar un mensaje.
Y esto es instantáneamente registrado por los demás. La sincronización es la clave. Tiene que alcanzar todos los dispositivos de destino en unos pocos milisegundos.
¿Cómo puedo ir sobre esto?
- Sockets web: no puedo ver que esto funcione, ya que no se garantiza que sea una red Wi-Fi. tal vez configuré un teléfono como punto de acceso y los otros se conectan a él?
- Bluetooth: ¿tal vez?
- Audio: tal vez, la velocidad del sonido probablemente sea una resolución de tiempo lo suficientemente cercana. Pero desordenado
- ¿Algo más?
Estoy trabajando en Unity3D, aunque dado que permite complementos para dispositivos móviles, podría implementarlo por plataforma por separado.
Una solución solo para iPhone aún sería interesante.
EDITAR: No digas ''Usar Bluetooth''
EDITAR: Una forma de reformular la pregunta: ¿es posible configurar un grupo de teléfonos móviles para que se puedan enviar paquetes UDP entre ellos? (Red Ad-Hoc?)
EDITAR: Enlaces: transferir NSString entre dos dispositivos a través de Bluetooth en iOS ¿ Transfiere datos entre iOS y Android a través de Bluetooth?
para Android, ''WiFi-Direct'' hará esto perfectamente.
para iPhone, la "Conectividad Multipeer" puede ser lo que desee.
soy un desarrollador de Android, no muy familiar con iphone. y por lo que respecta a iknow, Wifi-Direct usa wifi, Multipeer Connectivity usa Bluetooth.
y, el iPhone se puede conectar a la aplicación programable de Android WiFi-Direct.
espero que esto ayude
Esto requerirá algo de experimentación, pero si puede conectar el teléfono como un periférico a un dispositivo y como maestro para otro dispositivo al mismo tiempo, puede construir una red en anillo, donde todos los datos se transmiten a todos los teléfonos.
Honestamente, sin embargo, solo debes conectarte a una red wifi (enrutador). A menos que el propósito de su proyecto sea construir un trabajo alrededor de la arquitectura de red. Asumo que el uso de la función de punto de acceso wifi no funcionará en un iPhone comercial sin que se rompa la cárcel. Además de eso, la API para hacer tal cosa no aparece en la documentación.
Buena suerte, si encuentras una manera de hacerlo, sería genial escucharlo.
con OSC puede transmitir a todos los dispositivos en la misma red wifi en tiempo real.
no lo he usado desde hace tiempo con la unidad, pero esto podría ayudar: https://github.com/jorgegarcia/UnityOSC
No estoy seguro si la sincronización de "milisegundos" es factible, pero para la parte de descubrimiento de plataforma cruzada puede usar un SDK como http://p2pkit.io que abstrae todo el flujo de trabajo complicado detrás del descubrimiento de dispositivos cercanos.
Descargo de responsabilidad: trabajo para Uepaa desarrollando p2pkit para iOS y Android.
Utilice UNET para crear un servidor dedicado que ejecute UNET y una sala de chat para ubicaciones, en función de las geolocalizaciones.