PHP と Unity3D を組み合わせて Workerman を使用してリアルタイム投票システムを構築する方法
はじめに:
インターネットの急速な発展に伴い、リアルタイムのインタラクティブ アプリケーションに対する需要がますます高まっています。 。この記事では、PHP と Unity3D を使用して、Workerman を使用したリアルタイム投票システムを構築する方法を紹介します。この例を通じて、読者はこれらのツールを使用してリアルタイム アプリケーションを構築する方法を学ぶことができます。
1. ワーカーマンとは何ですか?
Workerman は、PHP に基づく非同期イベント駆動型ネットワーク フレームワークであり、高パフォーマンス、高同時実行性、およびリアルタイム アプリケーションの構築に使用できます。 Workerman を使用すると、PHP バックエンドでリアルタイム通信を簡単に実装できます。
2.なぜ Unity3D を選ぶのですか?
Unity3D は、強力な開発ツールと API を提供する人気のクロスプラットフォーム ゲーム エンジンです。したがって、Unity3D を使用してリアルタイム投票システムのクライアントを構築し、バックエンド PHP と通信してリアルタイムの投票統計と表示を実現できます。
3. 環境セットアップ
まず、PHP 環境をインストールして設定し、Workerman をダウンロードしてインストールする必要があります。 Workerman のインストールは非常に簡単で、composer を通じてインストールするだけです。
composer require workerman/workerman
次に、サーバーを構築してリアルタイム通信を処理するために、server.php などの PHP ファイルを作成する必要があります。以下は簡単なコード例です:
require_once 'vendor/autoload.php'; use WorkermanWorker; $worker = new Worker("websocket://0.0.0.0:9876"); $worker->onConnect = function($connection) { echo "New client connected "; }; $worker->onMessage = function($connection, $data) use ($worker) { echo "Received message: $data "; $worker->sendToAll($data); }; Worker::runAll();
4. Unity3D クライアントの実装
Unity3D は、WebSocket サーバーとの通信に使用できる WebSocketSharp プラグインを提供します。まず、Unity3D で空のオブジェクトを作成し、WebSocketSharp プラグイン スクリプトをアタッチします。スクリプトのサンプル コードは次のとおりです。
using UnityEngine; using WebSocketSharp; public class VoteClient : MonoBehaviour { private WebSocket ws; void Start() { ws = new WebSocket("ws://localhost:9876/"); ws.OnOpen += (sender, e) => { Debug.Log("Connected to server"); }; ws.OnMessage += (sender, e) => { string message = e.Data; Debug.Log("Received message: " + message); }; ws.Connect(); } void OnDestroy() { ws.Close(); } }
上記のコードは、WebSocket オブジェクトを作成し、サーバーとの接続を確立します。接続に成功すると、「サーバーに接続しました」と表示されます。同時に、OnMessage イベントをリッスンすることで、サーバーから送信されたメッセージを受信できます。
5. 投票システムの実装
例を単純化するために、投票システムには 2 人の候補者のみが含まれていると仮定します。 Unity3D では、GUI を使用して簡単な投票インターフェイスを実装できます。以下はサンプル コードです。
using UnityEngine; using WebSocketSharp; public class VoteClient : MonoBehaviour { private WebSocket ws; private int voteCount1 = 0; private int voteCount2 = 0; void Start() { // ...省略之前的代码 GUI.Button(new Rect(50, 10, 150, 30), "Candidate 1: " + voteCount1); GUI.Button(new Rect(50, 50, 150, 30), "Candidate 2: " + voteCount2); if (GUI.Button(new Rect(50, 90, 150, 30), "Vote for Candidate 1")) { voteCount1++; ws.Send("vote 1"); } if (GUI.Button(new Rect(50, 130, 150, 30), "Vote for Candidate 2")) { voteCount2++; ws.Send("vote 2"); } } // ... 省略之后的代码 }
上記のコードは、GUI を介して投票するための 2 つのボタンを実装し、WebSocket を介して投票結果をサーバーに送信します。同時に、voteCount 変数を変更することで、投票結果をリアルタイムに更新できます。
6. 運用とテスト
これで、Unity3D で投票システムを実行し、サーバーに接続することで投票結果をリアルタイムで観察できるようになりました。まず、PHP サーバーを起動します。コマンドは phpserver.php です。次に、Unity3D で VoteClient スクリプトを実行して、インターフェイスに投票します。
上記の手順により、PHP と Unity3D を Workerman と組み合わせてリアルタイム投票システムを構築することに成功しました。この例を通じて、読者はより複雑なリアルタイム アプリケーションをさらに探索し、実践することができます。
結論:
リアルタイム インタラクション アプリケーションの要件はますます高まっており、リアルタイム投票システムはアプリケーション シナリオの 1 つです。 PHP、Unity3D、Workerman を使用すると、高性能で同時実行性の高いリアルタイム アプリケーションを簡単に構築できます。同時に、この例を通じて、読者はリアルタイム アプリケーションの構築および開発プロセスをさらに理解し、探索することができます。
以上がPHP と Unity3D を組み合わせて Workerman を使用してリアルタイム投票システムを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。