Android中启用unity

本文介绍了如何在Android项目中使用Unity创建一个AR应用并将其集成到Eclipse中。首先在Unity中创建新工程和场景,导出为Android项目。接着在Android工程中创建新的Activity,设置为主Activity,并修改AndroidManifest.xml。在活动中添加按钮,点击后启动UnityPlayerActivity。最后,创建一个继承自UnityPlayerActivity的新Activity,用于展示Unity场景,并处理返回键事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在Unity下创建一个新的工程,然后建立场景,导出成安卓项目。(我用的是一个AR项目)

当导出的android项目导入Eclipse,
新建一个Activity,并在AndroidManifest中设置这个Activity为MainActivity
<activity
android:name="com.xxx.xxx.NewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

把原有的
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
删掉。



程序启动时显示的Activity代码:

package com.studio.androidpart.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.studio.unitypart.R;
import com.studio.unitypart.UnityPlayerActivity;

public class HomePageActivity extends Activity {
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homepage);
b = (Button) findViewById(R.id.enterButton);
//点击按钮切换场景
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(HomePageActivity.this,UnityActivity.class);
startActivity(i);
}
});
}
}


xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
>

<Button
android:id="@+id/enterButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Button" />
</RelativeLayout>


再新建一个Activity,这个Activity需要继承自UnityPlayerActivity,并且需要为这个Activity建立一个布局(可能用来承载Unity的场景呈现)

布局文件
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/unity_scene"
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>


Activity文件:

package com.studio.androidpart.activity;

import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.RelativeLayout;

import com.studio.unitypart.R;
import com.unity3d.player.UnityPlayerActivity;


public class UnityActivity extends UnityPlayerActivity{
private RelativeLayout u3dLayout;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.arscene);
u3dLayout = (RelativeLayout) findViewById(R.id.unity_scene);
u3dLayout.addView(mUnityPlayer);
mUnityPlayer.requestFocus();
}
@Override
/**
* 响应手机物理返回键
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK&& event.getRepeatCount() == 0) {
Intent i=new Intent(UnityActivity.this,HomePageActivity.class);
startActivity(i);
return true;
}
return super.onKeyDown(keyCode, event);
}
}


新的Activity也要在AndroidManifest中配置下

然后run就可以了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值