『壹』 Unity5怎麼讀取到Resources文件下的XML文件啊
XmlDocument xml = new XmlDocument();
xml.Load(Application.dataPath+"/Resources/"+"new.xml");
XmlNode root = xml.DocumentElement;
『貳』 unity讀取txt 還是xml 好讀
讀取txt快捷方便,數據小適用,讀取xml嚴謹規整,數據大適用
『叄』 unity哪一個路徑在安卓中是可以讀寫的
光有這個路徑是不行的,還要在unity3d中的player設置裡面,在android那個選項卡下面,有個internal給改成SDCard就可以讀寫了。 拓展:在plugins的android下建立AndroidManifest.xml然後配置android的設置
『肆』 unity怎麼調用android
方法/步驟
1
首先我們要創建一個android項目
步驟閱讀
2
因為項目需要使用Unity提供的介面,所以需要將介面classes.jar引入至當前工程但中。介麵包的所在地,打開Finder->應用程序->Unity->點擊Unity圖標,滑鼠右鍵選擇「顯示包內容」->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar
。介麵包引入工程後,開始編寫java代碼。
3
UnityTestActivity是主Activity,Unity程序一起動就會調用這個Activity,它是在AndroidManifest.xml中配置的。它需要繼承UnityPlayerActivity,然而它就是剛剛我們引入的classes.jar包中提供的介面類。UnityTestActivity對外提供了兩個方法介面,StartActivity0(String
name) 方法與StartActivity1(String
name)方法,這兩個方法是在Unity中使用C#腳本調用的,意思是調用後程序將打開一個新的Activity,參數name也是由C#腳本傳遞過來的,接著將傳遞的String參數繼續傳遞給新打開的Activity。
步驟閱讀
4
接下來就是設置xml文件和布局文件了。對於會android編程的同學就很熟悉了。
5
把寫好的java代碼發布成jar包。接下來就創建unity工程,Unity工程中文件夾的結構如下,Plugins->Android的名稱不能修改,必需保持一致。接著把Eclipse中Android的工程文件拷貝至這里,除了Android工程中的src文件夾,將其它文件夾全部拷貝至Plugins->Android文件夾中。最後在Plugins->Android文件夾中創建bin文件夾,然後將剛剛生成的.jar文件拷貝進來,jar的名稱可以隨便修改,但是jar包裡面必須是com->xys->你的class文件,否則運行程序後提示找不到類文件。
步驟閱讀
6
接下來就是如何在C#中調用android的方法的代碼了。
加入如下代碼。
AndroidJavaClass jc = new
AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo =
jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("StartActivity0","第一個Activity");
先得到AndroidJavaClass,然後得到AndroidjavaObject就是當前Activity的對象,也就是我們在上面創建的主UnityTestActivity.JAVA。拿到它的對象後調用jo.Call()參數1表示調用UnityTestActivity.JAVA類中的方法名稱,參數2表示該方法傳遞過去的參數。如下圖所示:「第一個Activity」與「第二個Activit」就是我在C#中傳遞過去的字元串。
7
發布成android平台apk
『伍』 unity讀取資料庫的內容生成xml文件保存本地
首先一個根節點
表中每一行對應為一個子節點
Id,Problem,ABCD四個選項,均作為其子節點(盡量不要有過多的屬性,用節點去描述),正確答案作為屬性
比如:
<problem>
<question1 answer='A是正確答案' >
<question>問題內容</question>
<A>選項A</A>
<B>選項B</B>
<C>選項C</C>
<D>選項D</D>
</question1>
...
</problem>
『陸』 unity怎麼獲取 android onactivityresult
[java] view plain
Intent intent = new Intent(this, LoginActivity.class);
startActivityForResult(intent, LOGIN_REQUEST);
[java] view plain
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
ZLog.i(TAG, "onActivityResult: requestCode="+ requestCode +", resultCode="+ resultCode);
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == LOGIN_REQUEST) {
ZLog.i(TAG, "requestCode");
if (resultCode == LOGIN_RESULT) {
ZLog.i(TAG, "resultCode");
this.onCreateOptionsMenu(this.mMenu);
}
}
}
LoginActivity.java
[java] view plain
setResult(MainActivity.LOGIN_RESULT);
finish();
後來谷歌一番之後,找到了問題所在,是 onActivityResult 和 AndroidManifest.xml 中 activity 的 launchMode 配置有沖突造成的。
解決辦法:
需要返回 result 的 activity 不能使用:
[html] view plain
android:launchMode="singleTask"
android:launchMode="singleInstance"
甚至有人說 singleTop 也會沖突,那就只好用默認的 standard 了,至於原理我沒空深入去研究了。
經試驗,設置為默認的 standard 後確實就正常了,暫時就這樣解決吧。
『柒』 關於Unity部署安卓程序時讀取配置文件的問題
放在Unity項目中名為StreamingAssets文件夾中的任何文件將會被一字不差地復制到目標機器上的特定文件夾里
MAC/Win: path = = Application.dataPath + "/StreamingAssets";
iOS: path = Application.dataPath + "/Raw";
Android: path = "jar:file://" + Application.dataPath + "!/assets/";