introduction
Dans les applications modernes, le suivi de l'emplacement en temps réel est devenu un élément essentiel de nombreux projets. Par exemple, le positionnement en temps réel, la navigation, les jeux multijoueurs, etc. s'appuient tous sur cette fonctionnalité. Cet article vous mènera pas à pas sur PHP et Unity3d pour réaliser la fonction de suivi de l'emplacement en temps réel dans la scène, aidant les développeurs à comprendre et à mettre en œuvre cette technologie.
Préparation préalable
Avant de commencer, assurez-vous d'avoir terminé les préparations suivantes: - ** Installation d'Unity3d **: Visitez le site officiel d'Unity pour télécharger et installer la dernière version d'Unity3d. - ** Installation de PHP et Workerman **: Installez PHP sur votre serveur et installez le framework Workerman via Composer.
Processus de mise en œuvre
1. Créer un projet Unity3d
Tout d'abord, ouvrez Unity3D et créez un nouveau projet. Placez un modèle 3D dans la scène en tant qu'objet de suivi.
2. Écrivez des scripts Unity3d
Créez un script C # dans Unity3d nommé `TrackingScript.cs` et entrez le code suivant:
Utilisation d'unityEngine;
Class Public Class Trackingscript: Monobehaviour
{
prise à douille privée;
private void start ()
{
// Connectez-vous au serveur Socket = new socket (AddressFamily.Internetwork, sockettype.stream, protoColtype.tcp);
Socket.Connect ("Adresse IP de serveur", 2345);
Debug.log ("Connecté avec succès");
}
Mise à jour privée vide ()
{
// Obtient la position actuelle Vector3 position = transform.position;
// Envoyez des informations d'emplacement au serveur via la chaîne de socket message = position.x + "," + position.y + "," + position.z;
octet [] buffer = coding.default.getBytes (message);
Socket.Send (tampon);
}
vide privé ondestroy ()
{
// Fermez le socket de connexion.close () à la fin du jeu;
}
}
3. Créer un fichier PHP côté serveur
Créez un fichier PHP nommé `suivi_server.php` sur le serveur et ajoutez le code suivant:
require_once __dir__. «/ vendeur/autoload.php»;
Utiliser Workerman \ Worker;
$ worker = nouveau travailleur ("WebSocket: //0.0.0.0: 2345");
$ worker-> onMessage = function ($ connection, $ data) {
// Après avoir reçu les informations de localisation, diffuser à tous les clients connectés ForEach ($ connection-> Worker-> Connexions comme $ client_connection) {
$ client_connection-> Send ($ data);
}
};
Travailleur :: runall ();
4. Démarrez le serveur
Exécutez la commande suivante à partir de la ligne de commande pour démarrer le côté serveur:
php tracking_server.php start
5. Exécutez le jeu dans Unity3d
Cliquez sur le bouton Exécuter dans Unity3d et le jeu commencera. Lorsque le modèle 3D se déplace, les informations de localisation sont envoyées au serveur via Socket.
6. Ajouter des scripts aux scènes unity3d
Joignez le script `TrackingScript.cs` à un objet vide dans la scène Unity3d et assurez-vous que le jeu d'adresses IP du serveur dans le script est correct.
7. suivi de l'emplacement en temps réel
À ce stade, vous avez mis en œuvre avec succès la fonction de suivi de l'emplacement des modèles 3D dans Unity3D en temps réel. Chaque fois que le modèle se déplace, les informations de localisation seront envoyées au serveur PHP en temps réel via Socket, et le serveur diffusera ces informations à tous les clients connectés.
Résumer
En combinant le framework Workerman de PHP avec Unity3d, nous avons réussi à implémenter une fonction de suivi de localisation simple en temps réel. Les développeurs peuvent étendre leurs fonctions en fonction des besoins réels, tels que l'ajout de synchronisation de l'emplacement, les fonctions de navigation, etc. dans les jeux multijoueurs en temps réel. J'espère que cet article vous aide.