1 建立一個MainActivity extends UnityPlayerActivity
UnityPlayerActivity 來自於 Unity3D的目錄下
2修改程式的onCreate 將setContentView移除,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
3
建立一個靜態方法
public static void setupAdsStatic() {
UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
LinearLayout layout =
new LinearLayout(UnityPlayer.currentActivity.getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
layout.setGravity(Gravity.BOTTOM);
Button btn = new Button(UnityPlayer.currentActivity.getApplicationContext());
btn.setText("Howard....");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(UnityPlayer.currentActivity.getApplicationContext(),
"GOGO!!", Toast.LENGTH_SHORT).show();
}
});
layout.addView(btn);
//Drawable.createFromXmlInner(//r, parser, attrs)
UnityPlayer.currentActivity.addContentView(layout,
new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
}
});
}
3 AndroidManifest.xml 寫入 的activity加入
<meta-data
android:name="unityplayer.ForwardNativeEventsToDalvik"
android:value="true" />
以上是在Android的部分~~詳細請參考附件的專案吧!!
再來是unity3d了~~!
1 在Unity3d建立一個目錄並將相關資料放入!!
Plugins -->Android-->bin 這資料夾放置剛做好的Android程式轉出來的Jar
-->res 下面方一些相關的資源
drawable-hdpi
layout
values
2 我是用C#於是建立一個C#程式
void Start()
{
if (Application.platform == RuntimePlatform.Android)
{
AndroidJavaClass adMobJavaClass = new
AndroidJavaClass("com.example.testandroidunity.MainActivity");
adMobJavaClass.CallStatic("setupAdsStatic");
}
}
收工~~~~
補上一些檔案~~下次來研究如何將Google Service Admob 放進去
檔案聯結
你好,最近需要使用插件部分,看了您的網誌有收穫
回覆刪除但是他現在出現了
OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an Android Library. See "Building Plugins for Android" section of the Manual.
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
查了網路上說了可能是版本問題,一直會閃退 如今加上了
project properties 不會閃退,但是似乎沒有讀到android部分
很困擾,請問該怎麼辦呢?(阿上面那個問題依然存在)