原文链接:Unity3d and PHP in action (server-side)
一些观点认为收集用户信息越来越重要,故服务器端的开发尤其重要。 本教程介绍一下简单的通过Unit3D和PHP交互开发,其基于facebook提供的PHP SDK。
你可调用javaScript的方法,通过Appliction.ExternalCall( “MethodName”, “ValueString” ); MethodName是全局范围的。 这个课通过Console测试。
另外,JavaScrpit也可以返回数据给Unity Web Player程序,使用 (Unity Object).SendMessage(). 例如调用u.getUnity().SendMessage("ObjectName", "MethodName", "MessageString") ,通过JavaScript侧触发了ObjectName对象的MethodName方法(public属性)。
故JavaScript脚本和Unit3D结合的相当不错。
Unit3D和PHP
这里有2个方法能够实现服务器侧脚本通信: 通过WWW对象或者WWWForm对象。 WWW对象采用的是在Unity 模块内使用,可获得指定URL的内容。WWWForm是比较有用的使用推送、获得、解析数据,如他可用于提交游戏得分情况和发布游戏消息给服务器。而获得数据需要通过C#的IEnumerator类来迭代循环实现。
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public string url = "http://link.to.your.texture.com"; IEnumerator Start() { WWW www = new WWW(url); yield return www; renderer.material.mainTexture = www.texture; } }
虽然你可在unity内通过HTTP请求工作,但是确不能触发PHP的任何方法。
你可通过使用Facebook PHP SDK在你的网站实现facebook登陆功能,这个是下一章要说的内容。Facebook鉴权流程图Logging user to Unity3d Game with Facebook account 基于URL重定向,展示了服务器侧鉴权过程,并通过HTTP GET方法返回访问令牌。
服务器端脚本是什么意思?
服务器脚本意味着可以有更多的控制。它给予你不仅能够使得facebook账号登陆游戏页面,同时也可以获得更多facebok的内容。(本文假设登陆页面游戏账号)
但是,如果你想要通过内部方法来确认用户是否登录?
在这种情况下,页面需要预先生成。然后通过程序的HTTP发起请求查询PHP脚本,判断用户是否登陆。PHP脚本调用facebok的API函数,通过SKD提供的方法,最后依据facebook服务器的响应结果返回给游戏终端用户。另外,你可要在调用前生成游戏页面,并把数据存储在Session,这样后台就需要请求一次facebook的PHP脚本,然后获得结果。
其他可选的办法?
最后一个选择是可以使用JavaScript作为一个通信沟通的桥梁。代替调用PHP脚步,你需要触发JavaScript方法,通过使用FaceBook
JavaScript SDK控制API函数。然后当你获得facebook的回掉函数,这个时候你触发一个Unity3D的内部函数,并实现异步调用服务器侧。两者有什么不同?
facebook宣称其JavaScript的SDK可以和PHPSDK关联调用。 什么?(1)减少请求次数 (2)减少获得用户的交互信息次数。
简而言之:基于服务器侧脚本,采用JavaScript的办法获得最佳结果。
我是MetaPad Paper 老用户了,用了2年多。...
一路东北, 转眼二十年了,最后一次回眸长春,是2004...
中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...
2023年,三年疫情过后第一个春天,我开始了骑行: 空...
2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...
在VR应用中,有一个相对简单的虚拟现实体验,那...
对程序员而言,写的代码用源码管理系统管理起来,非常方便...
上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...
不用插件,js脚本显示星号密码
以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...
今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...