如何用php和公司unity php游戏项目交互,求助老

如何在Unity3d中实现和网页数据的交互_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何在Unity3d中实现和网页数据的交互
我有更好的答案
450&codebase=&quot.cab#version=2" target="_blank">450&type=&quot,0&&
&).unity3d& /&
&];param name=&src&quot,0;SaySomethingToUnity(document.getElementById(&quot.host!=&#'){MyObject& value=&MyDataFile。 2、查看页面源码;3;embed id=&UnityEmbed& src=&quot?php
$action = $_POST[&myform_action&quot,任何类型都会转换成字符串类型使用。例子代码;/unity-web-" target="_blank">这里要注意的是MyObject代表Unity3D中的一个场景名称为&#39;<a href="&gt.SendMessage(&quot,&/&#47,可以看到如下嵌入部分:&object id=&UnityObject&quot://javascript&quot.ExternalCall(&SayHello&
电子产品技术支持
为您推荐:
其他类似问题
unity3d的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;巨猿IT教育 - 广州巨猿教育科技有限公司 - 花都学编程-IT培训-花都IT培训-花都编程培训-花都软件培训-花都程序员-花都IT教育-花都游戏开发-花都软件开发培训-花都网站开发培训-花都IT教育-PHP培训-APP培训-游戏培训-Unity3D培训
花都首家专注于高素质软件开发人才培养的培训机构
来自知名互联网企业的资深技术讲师团队,根据多年开发经验,
结合互联网企业的开发需求和信息技术发展趋势设立多种 IT 开发课程,
采用因材施教、分级教学的教学方式,教授最实用的行业知识,
让学员参与实战商业开发项目,并提供多种人才输送渠道,让不同层次学员都能获得就业机会。
微信扫一扫,了解更多!
教学特色和优势
巨猿不仅着重培养学员的基础理论知识,更注重培养项目实施管理能力,并密切关注技术革新,不断引入先进的技术,研发更新技术课程,确保学员进入企业后不仅能独立从事开发工作,更能给企业带来新的技术体系和理念。
巨猿教育已与众多一流的互联网IT公司建立了人才合作关系,凡达到巨猿考核标准毕业的优秀学员,将获得优先推荐就业的名额。
适合于刚毕业想从事IT行业的学生,或时间充足想转行IT行业的再就业人员。
适合于正在就业未脱产,白天时间不多,有志转行IT行业的人员。
周末进修班
适合于正在就业未脱产,周末才有时间,有志转行IT行业的人员。
线上学习班
适合于远距离,交通不便到校学习的人群。
巨猿教育结合互联网企业的开发需求和信息技术发展趋势,
提供的课程涵盖PHP、Web前端、Java、Android、iOS、Unity3D游戏、Erlang游戏服务端、UI设计等。
我零基础,应该学什么?
巨猿的课程大多是针对零基础的学员。报名之前,我们会提供一个学员水平测试,推荐适合的课程。
零基础体验课
原价 ¥999
学习周期 1 周
原价 ¥1299
学习周期 2 周
原价 ¥1299
学习周期 2 周
原价 ¥1199
学习周期 2 周
原价 ¥12888
学习周期 16 周
原价 ¥13888
学习周期 16 周
原价 ¥13888
学习周期 16 周
原价 ¥11888
学习周期 16 周
原价 ¥13888
学习周期 16 周
原价 ¥13888
学习周期 16 周
原价 ¥13888
学习周期 16 周
原价 ¥11888
学习周期 16 周
工作经历:具有10 年的Java 互联网与企业应用开发经验。曾经历任广州多家IT公司技术顾问,
先后就职于知名互联网公司任技术总监,设计和开发多个大型互联网与企业项目。
擅长技术:JavaEE, Android,iOS,对Spring,Hibernate,MyBatis等技术领域有深入研究。
工作经历:超过7年网页游戏和手机游戏开发经验,将近10年Web开发经验。曾经历任多家公司技术总监和项目经理,先后就职于中国服饰网、广州捷游软件(Forgame集团)、广州悦世界信息技术有限公司,带领团队开发多个互联网和游戏项目。
擅长技术:Erlang游戏开发、PHP、Web前端
工作经历:具有3年游戏开发经验,1年软件部门管理经验。
曾就职于知名互联网公司,担任软件研发部经理,兼任Unity开发工程师,参与并带领部门人员完成多个Unity项目、网站项目、手机应用项目等。
擅长技术:Unity游戏开发、VR/AR虚拟现实技术、.Net开发、3DsMax/PS 二三维设计
工作经历:3年android开发经验。曾就职于知名互联网公司,担任android开发工程师,期间带领初级工程师并管理android所有项目。
擅长技术:android,对视图的绘制、app的优化有自己的理解
广州市花都区新华街田美路78号附近
倍耐力轮胎2楼全层(瑞丰大厦旁边)
152- (Shawn)
微信扫一扫,咨询客服
关注公众号:巨猿教育【Unity开发】unity3d中的http通信&#160;post/get
我的图书馆
【Unity开发】unity3d中的http通信&#160;post/get
Unity3d 是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d
毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和php
sever交互来简单介绍一下。
提交数据原理
http 协议通过 url来获取和提交数据 。提交数据的方式
有两种,一种是get方法,一种是post方法。get一般用于告诉服务器把满足参数的数据发送给回来。
例如:get 的html代码如下:
post一般是将数据发送给服务器,服务器将这些数据进行处理,比如说存储到数据库。
例如:post的html 代码如下:
其实区别就是提交的方式不一样,点击login按钮后,浏览器地址栏里分别显示如下:
get方法url为:http://127.0.0.1/serach.php?user=hortor&pwd=123
post方法url为:http://127.0.0.1
PHP服务端接收数据方法
服务端针对这两种方式响应的有两种方式:
get方法接收数据的方法为 $_GET[user],来接收客户端发送的user的值。
post方法接收数据的方法为 $_POST[user]也是用来接收客户端变量user的值。
WWW类使用方法
unity www 类同样对应两种提交数据的方式,常用的两个构造函数为:
static function WWW (url :
String) : WWW
static function WWW (url :
String, form :
WWWForm) : WWW
第一个函数是通过get方法向服务器发送数据,第二个是用post提交数据,其中WWWForm有个方法叫:AddField(agr :
string, value : string),来添加参数。
[javascript]&
post例子:
[javascript]
其中yield 这个方法是程序每一帧调用一次,当getData 执行完成,返回结果,这就相当于是异步请求数据。WWW
类有几个常用的静态变量,分别为:
1、WWW.text 返回从网页得到数据,类型为string。
2、WWW.error 返回错误信息,比如说超时,网络连接错误等问题。
馆藏&21285
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢  unity3d开发时,用PHP作为后台是个不错的选择。对一些数据吞吐量不是很大的游戏,比如某个游戏的排名,登录等等,一般的php程序能够胜任了,并且php语言简单,开发容易对数据库尤其是mysql的支持良好,我们还可以通过php对接一些SDK(比如推送)作为unity3d的中转站。基于以上原因我们完全有理由使用php作为游戏后台。而对于数据吞吐量适中的游戏我们还可以,使用php编写websocket进行更实时的交互通讯(这里我们讨论websocket的情况,有空我再另写一遍来讨论).下面我们来看看unity3d和php的简单交互。
unity3d通过get方式请求php.get方式请求php比较简单,就是在url里面加上要传递的参数就可以了。
客户端代码: 
using UnityE
using System.C
public class phpUnity2 : MonoBehaviour
private string url = "http://localhost:8081/phptest/phpunity2.php?id=1100001&cid=1200001";
//带get参数id和cid的url
void OnGUI()
if (GUILayout.Button("get php"))
StartCoroutine(OnGet());
IEnumerator OnGet()
WWW www = new WWW(url);
yield return
if (www.error != null)
print("php请求错误: 代码为" + www.error);
print("php请求成功" + www.text);
  新建一个c# script贴上以上代码,并把它附加到Main Camera中。
  php代码:
/****************************************************************************
说明: 测试
****************************************************************************/
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类来构造一个表单字段。客户端代码
using UnityE
using System.C
public class phpUnity1 : MonoBehaviour
private string url = "http://localhost:8081/phptest/phpunity1.php";
void OnGUI()
if (GUILayout.Button("Post php"))
StartCoroutine(OnGet());
IEnumerator OnGet()
WWWForm form = new WWWForm();
form.AddField("id", 1100001);
form.AddField("cid", 1100001);
WWW www = new WWW(url, form);
yield return
if (www.error != null)
print("php请求错误: 代码为" + www.error);
print("php请求成功" + www.text);
/****************************************************************************
说明: 测试
****************************************************************************/
include_once "dbconfig.php";
if(isset($_POST["id"])
&& isset($_POST["cid"]))
echo "post请求成功,id值为:".$_POST["id"].",cid值为:".$_POST["cid"];
运行unity3d可以看到以下结果.
unity3d和php后台通讯实例通过上面的讨论我们了解了unity3d和php的简单交互了,现在我们来实现一个unity3d登录的例子.我们先用ugui简单的做一个登录界面,这里我们为了以后使用方便封装了一个Extension扩展类和Common公共类Common.cs:
using UnityE
using System.C
using System.Security.C
namespace Commons
/// &summary&
/// 扩展类
/// &/summary&
public static class Extension
/// &summary&
/// 判断字符是否为空
/// &/summary&
/// &param name="str"&&/param&
/// &returns&&/returns&
public static bool isEmpty(this string str)
if(str.Equals(""))
return true;
return false;
public class Common
/// &summary&
/// 对字符进行MD5加密
/// &/summary&
/// &param name="str"&&/param&
/// &returns&&/returns&
public static string StrEncrypMd5(string str)
if (str == null)
return "加密字符不能为空";
MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytRes = System.Text.Encoding.Default.GetBytes(str); ;
byte[] targetData = puteHash(bytRes);
string byte2String = BitConverter.ToString(targetData).Replace("-", ""); ;
return byte2String.ToLower();
客户端代码:
using UnityE
using UnityEngine.UI;
using System.C
public class login : MonoBehaviour
public InputField userIdF
public InputField passwordF
public Text statusT
private string userId = "";
private string password = "";
private string url = "http://localhost:8081/phptest/login.php";
void OnLogin()
userId = userIdField.
password = passwordField.
if (userId.isEmpty()
|| password.isEmpty())
print("账户和密码不能为空");
StartCoroutine(logining());
private IEnumerator logining()
WWWForm form = new WWWForm();
form.AddField("userId", userId);
form.AddField("password", Common.StrEncrypMd5(Common.StrEncrypMd5(password)));
//双重加密,由于md5的
WWW www = new WWW(url, form);
yield return
if (www.error != null)
print("error is login:" + www.error);
statusText.text = www.error + "...";
print(www.text);
statusText.text = www.
在MySQL建一个测试的数据表:
DROP TABLE IF EXISTS `tb1`;
CREATE TABLE `tb1` (
`userid` varchar(30) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of tb1
-- ----------------------------
INSERT INTO `tb1` VALUES ('100001', '123456');
INSERT INTO `tb1` VALUES ('100002', '123456');
INSERT INTO `tb1` VALUES ('100003', '123456');
INSERT INTO `tb1` VALUES ('100004', '123456');
PHP端代码:为了操作方便我封装了一个common.php文件和一个dbconfig数据库操作类common.php
/****************************************************************************
说明: 公共函数
****************************************************************************/
define("DEBUG", "FALSE");
header("Content-Type: text/charset=utf-8");
function debug_trace($_msg)
if(defined("DEBUG"))
if(DEBUG == "TRUE")
echo($_msg);
dbconfig.php
/****************************************************************************
说明: 对数据库的封装
****************************************************************************/
include_once("common.php");
class dbconfig{
//构造函数
function __construct()
if(!$this-&mysqli = mysqli_connect($this-&host, $this-&user, $this-&pwd))
die("Cant connect into database");
debug_trace("连接数据库成功...&br /&");
$this-&select_db($this-&db_name);
//析构函数
function __destruct()
mysqli_close($this-&mysqli);
public function get_mysql_handle()
return $this-&
public function select_db($_db)
if($this-&mysqli != null)
if(mysqli_select_db($this-&mysqli, $_db))
debug_trace("选择数据库成功...&br /&");
die("Cant connect into database");
执行一个sql无返回值
public function execute($_sql)
if(empty($_sql))
echo "参数不能为空";
if(!mysqli_query($this-&mysqli, $_sql))
debug_trace("执行失败...&br /&");
说明: 执行一个查询语句,并执行回调函数
public function do_query($_sql, $query_callback = "")
if(empty($_sql))
debug_trace("参数不能为空");
if($result = mysqli_query($this-&mysqli, $_sql))
$num_rows = $result-&num_
if($num_rows & 0)
while($row = $result-&fetch_assoc())
if(!empty($query_callback))
call_user_func( $query_callback , $row );
return $num_rows;
mysqli_free_result($result);
debug_trace("执行失败...&br /&");
//成员变量
private $host = "localhost";
//数据库地址
private $user = "root";
private $pwd = "";
//用户密码
private $db_name = "test";
private $mysqli = null;
登录的后台login.php:
/****************************************************************************
说明: 测试
****************************************************************************/
include_once "dbconfig.php";
$dbcfg = new dbconfig();
$password_md5 = "";
if(isset($_POST["userId"]) && isset($_POST["password"]))
$password = $_POST["password"];
$sql = "select * from tb1 where code='".$_POST['userId']."'";
if($dbcfg-&do_query($sql, "login_callback") & 0)
if(md5(md5($password_md5)) == $password)
echo "登录成功...";
echo "登录失败1...";
echo "登录失败2...";
function login_callback($row)
global $password_md5;
$password_md5 = $row["name"];
运行unity3d可以看到以下结果:
&好了对于unity3d和php的简单交互我们就谈论到这里,在实际的开发中我们可能通过xml,json向php发送数,我会另外写一遍来讨论。写的不好,请大家多多指正。
转载请注明出处:
阅读(...) 评论()相关文章推荐
作者:oneym
本文地址:http://blog.csdn.net一、前言游戏中图片的上传下载是一个亘古不变的话题,这次在开发游戏服务器的过程中也不可避免的出现了图片下载和上传的问题。遇到了PNG...
一、图片上传功能的意义随着梦幻西游、大话西游、问道等回合制游戏的兴起,手游制作团队越来越重视社交功能的开发。笔者前一篇文章介绍了如何在Unity中加入语音聊天功能,本篇文章将介绍下一个社交功能——图片...
最近比较忙,有段时间没写博客拉。最近项目中需要使用HTTP与Socket,雨松MOMO把自己这段时间学习的资料整理一下。有关Socket与HTTP的基础知识MOMO就不赘述拉,不懂得朋友自己谷歌吧。我...
注:引擎版本unity4.x
最近项目需求,需要做用户头像,要求:
可以从本地上传
压缩控制大小
在三个平台实现PC/Android/IOS
弄了好几天总是搞...
前端(unity)的程序:服务器端(JavaWeb)程序代码:unity中点击鼠标左键,得到结果如下:实现unity中把图片转字节流发送
后台收到字节流后把字节流立即又转手抛给unity
C# socket通信只能传输的字节流,所以 我们若是想利用socket传输任何东西,都必须将之以字节的形式进行传输
So 本文就抛砖引玉一下,以传输图片的形式来示范一下,socket传输除文本数据以...
首先去下载LitJson.dll,放在Plugins 目录下;
LitJson可以从下面的地址获得:http://download.csdn.net/detail/h73927...
Unity与Java服务器通讯传递文件
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 unity3d和php开发网站 的文章

 

随机推荐