unity3d开发时,用PHP作为后台是个不错的选择。对一些数据吞吐量不是很大的游戏,比如某个游戏的排名,登录等等,一般的php程序能够胜任了,并且php语言简单,开发容易对数据库尤其是mysql的支持良好,我们还可以通过php对接一些SDK(比如推送)作为unity3d的中转站。基于以上原因我们完全有理由使用php作为游戏后台。而对于数据吞吐量适中的游戏我们还可以,使用php编写websocket进行更实时的交互通讯(这里我们讨论websocket的情况,有空我再另写一遍来讨论).下面我们来看看unity3d和php的简单交互。
unity3d通过get方式请求php.
get方式请求php比较简单,就是在url里面加上要传递的参数就可以了。
客户端代码:
usingUnityEngine;
usingSystem.Collections;
public classphpUnity2 : MonoBehaviour
{
private string url = "http://localhost:8081/phptest/phpunity2.php?id=1100001&cid=1200001"; //带get参数id和cid的url
voidOnGUI()
{
if (GUILayout.Button("get php"))
{
StartCoroutine(OnGet());
}
}
IEnumerator OnGet()
{
WWW www = newWWW(url);
yield returnwww;
if (www.error != null)
{
print("php请求错误: 代码为" +www.error);
}
else{
print("php请求成功" +www.text);
}
}
}
新建一个c# script贴上以上代码,并把它附加到Main Camera中。
php代码:
/****************************************************************************
* 作者:
* 日期: 2016-09-12
* 版本: v1.0
* 说明: 测试
****************************************************************************/
include_once "dbconfig.php";
if(isset($_GET["id"])
&& isset($_GET["cid"]))
{
echo "get请求成功,id值为:".$_GET["id"].",cid值为:".$_GET["cid"];
}
?>
新建一个php文件贴上以上代码,运行unity3d将会看到以下结果。
unity3d通过post方式请求php.
unity3d post方式请求php我们要通过WWWForm类来构造一个表单字段。
客户端代码
usingUnityEngine;usingSystem.Collec