Android中启用unity
16lz
2021-01-26
首先在Unity下创建一个新的工程,然后建立场景,导出成安卓项目。(我用的是一个AR项目)
当导出的android项目导入Eclipse, 新建一个Activity,并在AndroidManifest中设置这个Activity为MainActivity android:name="com.xxx.xxx.NewActivity" android:label="@string/app_name">
把原有的 删掉。
程序启动时显示的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"?>
再新建一个Activity,这个Activity需要继承自UnityPlayerActivity,并且需要为这个Activity建立一个布局(可能用来承载Unity的场景呈现)
布局文件 <?xml version="1.0" encoding="UTF-8"?>
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就可以了
当导出的android项目导入Eclipse, 新建一个Activity,并在AndroidManifest中设置这个Activity为MainActivity android:name="com.xxx.xxx.NewActivity" android:label="@string/app_name">
把原有的
程序启动时显示的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"?>
再新建一个Activity,这个Activity需要继承自UnityPlayerActivity,并且需要为这个Activity建立一个布局(可能用来承载Unity的场景呈现)
布局文件 <?xml version="1.0" encoding="UTF-8"?>
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就可以了
更多相关文章
- Groovy 使用完全解析
- Android(安卓)Wifi BT的工作流程和porting(精)
- weex run android 时 gradle 下载缓慢
- Android(安卓)Studio中使用adb shell查看SharedPreferences文件
- Android(安卓)apk安装管理(PackageManagerService 分析)
- 如何用gdb找到Android(安卓)so文件中的加密key
- android 动态加载布局文件三种方法
- Android(安卓)aapt自动打包工具详细介绍
- Android获取assets文件夹中的数据并写入SD卡示例