unity web player3dWEB打包后读取不了数据库

Unity3D中webplayer实现数据库操作 | Unity3D教程手册
当前位置 :
>> Unity3D中webplayer实现数据库操作
Unity3D中webplayer实现数据库操作
怎样webplayer实现数据库操作?的脚本是基于开源的.net框架'Mono', 因此它带给很大的扩展空间。到这里根据需要下载对应的Dll文件。以MySql为例/MySQL根据说明下载对应文件,将“mysql.data.dll”拷到脚本对应的目录下。
参考网页中的示例代码我们得改改才能正确在中运行:(其实不用改也行,当初没添加System.Data.dll&必须从这目录拷:..\Unity\Editor\Data\MonoCompiler.framework&到Assets目录下)
去掉“using System.Data” 否则报错“The type or namespace name `Data' does not exist in the namespace `System'. Are you missing an assembly reference?”,没引用它了接口自然是用不了了,没关系不用接口照样实现它:
using UnityE
using System.C
using MySql.Data.MySqlC
public class databaseOp : MonoBehaviour
void Start()
string connectionString =
"Server=" +
"Database=**;" +
"User ID=**;" +
"Password=**;" +
"Pooling=false";//连接字符串根据自己的数据库情况填了
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
MySqlCommand dbcmd = dbcon.CreateCommand();
//以下根据自己的需要写吧!
string sql = "SELECT datavalue FROM datatable";
mandText =
MySqlDataReader reader = dbcmd.ExecuteReader();
while (reader.Read())
mystring += (string)reader["datavalue"] + "\n";
// clean up
reader.Close();
dbcmd.Dispose();
dbcon.Close();
catch (Exception ex)
mystring = ex.ToString();
此时在Unity中是可以正确运行了,不过打包后运行会出错,根据出错信息到..\Unity\Editor\Data\Frameworks\Mono.framework目录下将I18N.CJK.dll、 I18N.dll 、I18N.West.dll拷到脚本目录下就行了。
【上一篇】
【下一篇】
您可能还会对这些文章感兴趣!您所在的位置: &
Unity3D教程:与Sqlite数据库直连
Unity3D教程:与Sqlite数据库直连
jiezhixing008
9RIA天地会
本文将为您介绍Unity 3D如何与Sqlite数据进行连接的过程,操作环境为Windows 7下。
环境介绍:
Windows7,Unity3D,SQLite Expert Personal 3
开发语言:
JavaScript
需要的dll文件:
Mono.Data.Sqlite.dll和sqlite3.dll,dll文件位置,截图:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M00/0F/22/wKioOVG6eb3B06qRAAAnNvXnKeA451.jpg" />
Unity3D教程:Unity3D与Sqlite数据库直连
一定要在这个目录下,请保持一致。
如果需要将编译好的程序发布成功的话,需要改一些地方,具体见下面的截图:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M01/0F/22/wKioOVG6eb2SjG4NAABv6xT-tBU291.jpg" />
要改动的地方已用红色标记,注意这个要改成.NET2.0,这样才能够发布的。系统默认的不是.NET2.0,这一点要注意!!!
下面来看下代码吧,先看下如何创建数据库的代码,这一篇代码是不用挂到任何对象上面去的,你只用把它当成一个工具即可。如下所示:
&&&&&&&/*&
*本代码是为了在Windows环境下运行unity3d和Sqlite数据库而写的;实现的基本功能是unity3d能够与数据库之间进行基本的通信,比如说:在数据库中的数据被改变了以后,unity3d中得到的数据也会在刷新了之后跟着改变;这只是一个基本的核心的技术,为的是能够应用在大型的unity3d项目中,能够存储场景中的项目的属性,在需要改变对象的属性或增加、减少等对象时能够很方便的用得上。要实现本代码。首先需要一些dll文件,一个是Mono.Data.SQLiteClient.dll,另外一个是sqlite3.dll,这些文件都能够在unity3d的安装目录中找得到。除此之外,还需要把这两个文件放在你的项目的这个路径下面:\Assets\Plugins\,没有Plugins文件夹就必须创建这个文件夹,然后将这两个dll文件放在该文件夹写。当然,如果你想能够在PC上面发布成可执行文件,还需要改动一些地方。在unity3d中的Play Setting -&Other Setting 中将Api Compatibility的等级改为.NET 2.0;那么这些操作做完了以后,如果你的代码写得没有问题,那么你就可以成功了。
细解释代码:&
*&*/&import&&&&&&&&&&System.D&&&import&&&&&&&&&&Mono.Data.S&&class&dbAccess&{&&&&&&&&&&private&var&connection&:&S&&&&&&&&&&&&&private&var&dbcon&:&IDbC&&&&&&&&&&&&&private&var&dbcmd&:&IDbC&&&&&&&&&&&&&&&&&&&&&private&var&reader&:&IDataR&&&&&&&&&&&&&function&OpenDB(p&:&String){&&&&&connection&=&&URI=file:&&+&p;&&&&&&dbcon&=&new&SqliteConnection(connection);&&&&&dbcon.Open();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&function&BasicQuery(q&:&String,&r&:&boolean){&&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&&mandText&=&q;&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&&&&&&if(r){&&&&&&&&&&return&&&&&&&&&&&}&&&&&}&&&&&&&&&&&&&&&function&ReadFullTable(tableName&:&String){&&&&&&&&&var&query&:&S&&&&&&&&&query&=&&SELECT&*&FROM&&&+&tableN&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&mandText&=&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&&&&&var&readArray&=&new&ArrayList();&&&&&&&&&while(reader.Read()){&&&&&&&&&&&&&var&lineArray&=&new&ArrayList();&&&&&&&&&&&&&for&(var&i&=&0;&i&&&reader.FieldC&i++)&&&&&&&&&&&&&&&&&lineArray.Add(reader.GetValue(i));&&&&&&&&&&&&&&readArray.Add(lineArray);&&&&&&&&&&}&&&&&&&&&return&readA&&&&&&}&&&&&&&&&&function&DeleteTableContents(tableName&:&String){&&&&&var&query&:&S&&&&&query&=&&DELETE&FROM&&&+&tableN&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&mandText&=&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&}&&&&&function&CreateTable(name&:&String,&col&:&Array,&colType&:&Array){&&&&&&&&&&var&query&:&S&&&&&&&&&query&&=&&CREATE&TABLE&&&+&name&+&&(&&+&col[0]&+&&&&&+&colType[0];&&&&&&&&&for(var&i=1;&i&col.&i++){&&&&&&&&&&&&&query&+=&&,&&&+&col&+&&&&&+&colT&&&&&&&&&}&&&&&&&&&query&+=&&)&;&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&&mandText&=&&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&&}&&&&&function&InsertIntoSingle(tableName&:&String,&colName&:&String,&value&:&String){&&&&&&&&&&var&query&:&S&&&&&&&&&query&=&&INSERT&INTO&&&+&tableName&+&&(&&+&colName&+&&)&&&+&&VALUES&(&&+&value&+&&)&;&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&&mandText&=&&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&&}&&&&&function&InsertIntoSpecific(tableName&:&String,&col&:&Array,&values&:&Array){&&&&&&&&&&var&query&:&S&&&&&&&&&query&=&&INSERT&INTO&&&+&tableName&+&&(&&+&col[0];&&&&&&&&&for(var&i=1;&i&col.&i++){&&&&&&&&&&&&&query&+=&&,&&&+&&&&&&&&&&}&&&&&&&&&query&+=&&)&VALUES&(&&+&values[0];&&&&&&&&&for(i=1;&i&values.&i++){&&&&&&&&&&&&&query&+=&&,&&&+&&&&&&&&&&}&&&&&&&&&query&+=&&)&;&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&mandText&=&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&}&&&&&function&InsertInto(tableName&:&String,&values&:&Array){&&&&&&&&&&var&query&:&S&&&&&&&&&query&=&&INSERT&INTO&&&+&tableName&+&&&VALUES&(&&+&values[0];&&&&&&&&&for(var&i=1;&i&values.&i++){&&&&&&&&&&&&&query&+=&&,&&&+&&&&&&&&&&}&&&&&&&&&query&+=&&)&;&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&mandText&=&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&function&SingleSelectWhere(tableName&:&String,&itemToSelect&:&String,&wCol&:&String,&wPar&:&String,&wValue&:&String){&&&&&&&&&&var&query&:&S&&&&&&&&&query&=&&SELECT&&&+&itemToSelect&+&&&FROM&&&+&tableName&+&&&WHERE&&&+&wCol&+&wPar&+&wV&&&&&&&&&&&&&&&&&dbcmd&=&dbcon.CreateCommand();&&&&&&&&&mandText&=&&&&&&&&&&reader&=&dbcmd.ExecuteReader();&&&&&&&&&var&readArray&=&new&Array();&&&&&&&&&while(reader.Read()){&&&&&&&&&&&&&readArray.Push(reader.GetString(0));&&&&&&&&&&}&&&&&&&&&return&readA&&&&&&}&&&&&function&CloseDB(){&&&&&&&&&reader.Close();&&&&&&&&&&reader&=&null;&&&&&&&&&dbcmd.Dispose();&&&&&&&&&dbcmd&=&null;&&&&&&&&&dbcon.Close();&&&&&&&&&dbcon&=&null;&&&&&}&}&
7、如何在Unity3D中使用这个数据库的代码:
&&&&&&&&&&&&&&&&public&var&DatabaseName&:&String&=&&TestDB.sqdb&;&&&&public&var&TableName&:&String&=&&TestTable&;&&var&db&:&dbA&&function&Start(){&&&&&&&&&&&&db&=&new&dbAccess();&&&&&&db.OpenDB(DatabaseName);&&&&&&&&&&&&var&tableName&=&TableN&&&&&&var&columnNames&=&new&Array(&firstName&,&lastName&);&&&&&&var&columnValues&=&new&Array(&text&,&text&);&&&&&&try&{db.CreateTable(tableName,columnNames,columnValues);&&&&&&}&&&&&&catch(e){&&&&&&&&&&&&&&&&}&&}&&&&var&firstName&:&String&=&&First&Name&;&&var&lastName&:&String&=&&Last&Name&;&&var&DatabaseEntryStringWidth&=&100;&&var&scrollPosition&:&Vector2;&&var&databaseData&:&ArrayList&=&new&ArrayList();&&&&&&function&OnGUI(){&&&&&&GUI.Box(Rect&(25,25,Screen.width&-&50,&Screen.height&-&50),&Data&);&&&&&&GUILayout.BeginArea(Rect(50,&50,&Screen.width&-&100,&Screen.height&-&100));&&&&&&&&&&&&&&&&GUILayout.BeginHorizontal();&&&&&&&&&&&&&&firstName&=&GUILayout.TextField(firstName,&GUILayout.Width&(DatabaseEntryStringWidth));&&&&&&&&&&&&&&lastName&=&GUILayout.TextField(lastName,&GUILayout.Width&(DatabaseEntryStringWidth));&&&&&&&&&&&&&&&&&&&&&&&&GUILayout.EndHorizontal();&&&&&&&&&&if&(GUILayout.Button(&Add&to&database&)){&&&&&&&&&&&&&&&&&&&&&&&&&&&&InsertRow(firstName,lastName);&&&&&&&&&&&&&&&&&&&&&&&&&&&&databaseData&=&ReadFullTable();&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&GUILayout.BeginHorizontal();&&&&&&&&&&&&&&if&(GUILayout.Button&(&Read&Database&))&&&&&&&&&&&&&&&&&&&&&&&&&&databaseData&=&ReadFullTable();&&&&&&&&&&&&&&if&(GUILayout.Button(&Clear&))&&&&&&&&&&&&&&&&&&databaseData.Clear();&&&&&&&&&&GUILayout.EndHorizontal();&&&&&&&&&&GUILayout.Label(&Database&Contents&);&&&&&&&&&&scrollPosition&=&GUILayout.BeginScrollView(scrollPosition,&GUILayout.Height(100));&&&&&&&&&&&&&&for&(var&line&:&ArrayList&in&databaseData){&&&&&&&&&&&&&&&&&&GUILayout.BeginHorizontal();&&&&&&&&&&&&&&&&&&for&(var&s&in&line){&&&&&&&&&&&&&&&&&&&&&&GUILayout.Label(s.ToString(),&GUILayout.Width(DatabaseEntryStringWidth));&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&GUILayout.EndHorizontal();&&&&&&&&&&&&&&}&&&&&&&&&&GUILayout.EndScrollView();&&&&&&&&&&if&(GUILayout.Button(&Delete&All&Data&)){&&&DeleteTableContents();&&&&&&&&&&&&&&databaseData&=&ReadFullTable();&&&&&&&&&&}&&&&&&GUILayout.EndArea();&&}&&&&function&InsertRow(firstName,&lastName){&&&&&&var&values&=&new&Array((&'&+firstName+&'&),(&'&+lastName+&'&));&&&&&&db.InsertInto(TableName,&values);&&}&&&&function&ReadFullTable(){&&&&&&return&db.ReadFullTable(TableName);&&}&&&&function&DeleteTableContents(){&&&&&&db.DeleteTableContents(TableName);&&}&
运行结果:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M00/0F/20/wKioJlG6eb2jw87fAAAhOo1PgxM025.jpg" />
这是在Unity3D中运行的结果,数据的操作结果如下:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M01/0F/20/wKioJlG6eb6hcwKrAAAgB27l6aQ665.jpg" />
我们看见了数据的操作能够成功,经过测试,其他的Button也都能出现相对应的效果,那我们再看看这个到底有没有生成我们想要的数据库文件:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M01/0F/22/wKioOVG6eb_ScopgAABz0SlzxFI402.jpg" />
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="Unity3D教程:Unity3D与Sqlite数据库直连" src="/wyfs01/M00/0F/22/wKioOVG6eb_C2K15AABqqTg2S-U077.jpg" />
文件当中数据:经测试,我们在对数据库中的数据进行操作的时候,我们的Unity3D中的数据也会发生相应的改变了!
原文链接:/forum.php?mod=viewthread&tid=168629&fromuid=308561
【责任编辑: TEL:(010)】
关于的更多文章
Unity,也称Unity3D,是近几年非常流行的一个3D游戏开发引擎,跨
本次的专刊为大家提供了Oracle最新推出的Java SE 8详细的开发教程,从解读到探究Java 8最新
这周Windows8.1正式版发布了,不知道各位有没有去更新
十一长假归来上班,好像更累了;早上也越来越堵了。小
数据结构课程,貌似是大学计算机、网络、软件等专业的
本书的第1版获得过“2006年度全行业优秀畅销品种奖”。全书共15章,分别介绍了网管员职责和应具备的工作习惯、共享上网与访问控
51CTO旗下网站程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之在Android中打开WebView(三十)
Unity3D研究院之在Android中打开WebView(三十)
围观13353次
编辑日期: 字体:
昨天有个朋友问我如何在Unity中调用Android中的WebView组件,实现内部浏览器样式的页面切换。开始我告诉他可以通过Unity中打开Activity来实现,其实在之前的文章 我已经写的很清楚啦。难得有时间那么MOMO就为了这个朋友将Unity内嵌浏览器的方法在分享出来,看这篇文章之前请一定要看 因为之前写过的东西MOMO在这里就不赘述啦。废话不多说,我们开始进入正题,首先打开Eclipse创建一个Android的工程、
UnityTestActivity.java 入口Activity ,Unity中会调用这个Activity中的方法从而打开网页。
12345678910111213141516171819202122232425
package com.xys;&import android.content.Context;import android.content.Intent;import android.os.Bundle;import com.unity3d.player.UnityPlayerActivity;&public class UnityTestActivity extends UnityPlayerActivity {& Context mContext = null;& @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;& }& //Unity中会调用这个方法,从而开打WebView
public void StartWebView(String str)
{ &&&&&&&& Intent intent = new Intent(mContext,WebViewActivity.class); &&&&&&&& this.startActivity(intent);
WebViewActivity.java Unity中发出通知打开这个Activity 继而打开WebView,没有什么难点大家看看就应当能掌握。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
package com.xys;&import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.webkit.WebView;import android.widget.Button;&public class WebViewActivity extends Activity{& private WebView webView; private Button close; @Override protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);&
setContentView(R.layout.main);&
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("/"); &&&&webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());&
close = (Button) findViewById(R.id.button);
close.setOnClickListener(new OnClickListener() {&
public void onClick(View v) {
WebViewActivity.this.finish();&
}); }& private class WebViewClient extends android.webkit.WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//这里实现的目标是在网页中继续点开一个新链接,还是停留在当前程序中
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);&
然后是main.xml
123456789101112131415161718192021
&?xml version="1.0" encoding="utf-8"?&&LinearLayout xmlns:android="/apk/res/android"&&&&android:layout_width="fill_parent"&&&&android:layout_height="fill_parent"&&&&android:orientation="vertical" &&&&&WebView&&&&&&&&&&&&android:id="@+id/webView"&&&&&&&&&&&&android:layout_width="fill_parent"&&&&&&&&&&&&android:layout_height="wrap_content"&&&&&&&&&&&&android:layout_weight="1.0"&&&&&&&&&&&&/&&&&&&&&&Button&&&&&&&&&&&&android:id="@+id/button"&&&&&&&&&&&&android:text="关闭网页"&&&&&&&&&&&&android:layout_width="wrap_content"&&&&&&&&&&&&android:layout_height="wrap_content"&&&&&&&&&&&&/&&&&&/LinearLayout&
最后是AndroidManifest.xml
123456789101112131415161718192021222324252627282930
&?xml version="1.0" encoding="utf-8"?&&manifest xmlns:android="/apk/res/android"&&&&package="com.xys"&&&&android:versionCode="1"&&&&android:versionName="1.0" &&&&&&&uses-sdk android:minSdkVersion="10" /&&&&&&&application&&&&&&&&android:icon="@drawable/ic_launcher"&&&&&&&&android:label="@string/app_name" &&&&&&&&&&activity&&&&&&&&&&&&android:name=".UnityTestActivity"&&&&&&&&&&&&android:label="@string/app_name" &&&&&&&&&&&&&&intent-filter&&&&&&&&&&&&&&&&&&action android:name="android.intent.action.MAIN" /&&&&&&&&&&&&&&&&&&&category android:name="android.intent.category.LAUNCHER" /&&&&&&&&&&&&&&/intent-filter&&&&&&&&&&/activity&&&&&&&& &activity&&&&&&&&&&&&android:name=".WebViewActivity"&&&&&&&&&&/activity&&&&&&/application&&&&&&&!-- 连接互联网的权限 --&&&&&&uses-permission android:name="android.permission.INTERNET" /&&&/manifest&
OK 到这里JAVA代码已经完全写完,然后把所有.JAVA文件打包变成.class文件,具体转换的方法大家可以参照MOMO之前的文章,写的已经很清楚啦。
下面是Unity中的部分。点击图片可以查看大图,具体内容就在里面没什么东西,就是创建Plugins文件夹 然后把Android代码的res文件夹AndroidManifest文件还有刚刚生成的class文件拷贝至bin文件夹即可。
唯一的脚本文件Test.cs
123456789101112131415161718192021222324252627
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour {& // Update is called once per frame void Update () {
//当用户按下手机的返回键或home键退出游戏
if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home) )&&
Application.Quit();&&
} }& void OnGUI() {
if(GUILayout.Button("OPEN WEBVIEW",GUILayout.Height(100)))
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");&&&&&&
AndroidJavaObject jo = jc.GetStatic&AndroidJavaObject&("currentActivity");&&&&&&&&
jo.Call("StartWebView","");
注释1:这里就是通知UnityTestActivity调用StartWebView方法,继而打开网页。
然后就是打包编译上真机。 先是Unity的界面,点击左上角按钮后程序将打开网页。
的网页已经被打开啦。是嵌套在Unity中打开的噢。
MOMO在百度里面写入 “宣雨松” 做为关键字搜索一下。新打开的网页依然嵌套在Unity中,这样就好像在 Unity中集成了一个内部浏览器一样的东东啦。还不错吧 哇咔咔。 我的书终于出版了心里还是比较高兴的啦啦啦。。
如果想关闭网页回到Unity的话,点击左下角按钮 “关闭网页” 或者手机自带返回键即可。 如下图所示我们又回到了Unity中啦。哇咔咔。。
最后当然是本文的源代码啦,源码包括Android工程以及Unity工程。 雨松MOMO祝大家学习愉快啦啦啦,希望昨天给我留言求助的朋友能看到这篇文章。
本文固定链接:
转载请注明:
MOMO与MO嫂提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
,,,,,,
您可能还会对这些文章感兴趣!版权所有 京ICP备号-2
迷上了代码!为什么unity的webPlayer操作不了文件file的写入跟读取呢?_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:26,226贴子:
为什么unity的webPlayer操作不了文件file的写入跟读取呢?收藏
有没有其他方法让Unity3d发布的.unity文件爱你读取本地文件,如D盘下ipaddress.txt。不要告诉我连接服务器,我想读的就是服务器ip地址和端口。求大神指点!~
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 unity web player 的文章

 

随机推荐