Webアプリケーションとゲーム開発では、ユーザーログイン認証関数はコアコンポーネントです。 Web開発に人気のある言語として、Unity3Dはゲーム開発で広く使用されています。これら2つを組み合わせる必要がある場合、PHPとUnity3Dの間にユーザー認証機能を実装する方法が共通の要件になりました。この記事では、Workerman Frameworkを使用して、PHPおよびUnity3Dのユーザーログイン認証を実装する方法を示します。
Workermanは、PHPに基づいた高性能の非同期イベント駆動型フレームワークであり、非常に並行したネットワークアプリケーションを構築するために設計されています。 TCP/UDPプロトコルをサポートし、インスタントメッセージング、ゲームサーバーなどのアプリケーションを構築するのに適しており、パフォーマンスが非常に高く、多数の同時接続を簡単に処理できます。 Workermanは、高性能と低遅延を必要とするアプリケーションに理想的な選択肢です。
実装する必要があるのは、ユーザーログイン認証を実行するPHPベースのサーバーであり、Unity3Dクライアントがネットワークを介してサーバーと対話してログイン認証を完了できるようにすることです。特定のプロセスは次のとおりです。
System.Collectionsを使用します。
UnityEngineの使用。
UnityEngine.networkingを使用します。
<p>パブリッククラスのログインマネージャー:Monobehaviour<br>
{<br>
public string loginurl = " <a rel="noopener" target="_new" class="" href="http://your-php-server.com/login.php">http://your-php-server.com/login.php</a> ";<br>
パブリック文字列ユーザー名前;<br>
パブリック文字列パスワード。</p>
<pre>public void Login()
{
StartCoroutine(DoLogin());
}
IEnumerator DoLogin()
{
WWWForm form = new WWWForm();
form.AddField("username", username);
form.AddField("password", password);
UnityWebRequest www = UnityWebRequest.Post(loginUrl, form);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log(www.downloadHandler.text);
}
}
}
require_once __dir__。 '/workerman/autoloader.php';
Workerman \ Workerを使用してください。
<p>$ worker = new Worker( 'tcp://0.0.0.0:8000');</p>
<p>$ worker-> onmessage = function($ connection、$ data){<br>
$ requestData = json_decode($ data、true);<br>
$ username = $ requestdata ['username'];<br>
$ password = $ requestData ['password'];</p>
<pre>// 验证用户名前和密码
if ($username == 'admin' && $password == '123456') {
$connection->send(json_encode(['result' => true]));
} else {
$connection->send(json_encode(['result' => false]));
}
};
労働者:: ranall();
この記事では、Workerman Frameworkを使用して、PHPとUnity3Dの間にユーザーログイン認証を実装する方法を示しています。上記のコードの例を使用すると、Unity3DクライアントとPHPサーバーの間で効率的なログイン認証システムを簡単に確立できます。 Workermanの高性能の利点により、PHPとUnity3Dの間の通信がよりスムーズになります。特に、同時性の高いシナリオに適しています。