Android启动Unity
来源:互联网 发布:模拟退火算法实例c 编辑:程序博客网 时间:2024/05/20 19:28
例如在一个android项目中,点击一个按钮,启动unity for android。
1、首先在Unity 引擎中将Unity3D项目build一下,需要在build settings——> platform中选择Android平台。编译好, 就会在Unity3D项目的目录下\Temp\StagingArea中自动生成一个Android工程目录结构的包,这个包就是Android项目需要引用的包
2、根据unity3d项目..\Temp\StagingArea的目录包,在Eclipse中的新建一个项目,这个项目是根据Android Project from Existing Code 进行创建的项目
这个Existing Code Root Directory就是unity3d项目下的..\Temp\StagingArea这个目录,并将这个项目设置为Library
3、将这个Library项目中的assets目录下bin目录与libs目录拷贝到需要整合的Android项目中的assets目录下
4、需要与Unity3D进行整合的Android项目需要引用刚才的Library
5、最后把Unity3D安装目录如..\Unity\Editor\Data\PlaybackEngines\androidplayer\bin目录下的classes.jar拷贝到Android项目下libs的目录下,并引用它。
6、完成以上步骤,开始在Android项目中写脚本。
package com.example.androidcallunity;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;import android.view.View.OnClickListener;public class MainActivity extends Activity {Context mContext = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; setContentView(R.layout.activity_main); Button call = (Button)this.findViewById(R.id.button1); call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { myStartActivity(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void myStartActivity() { Intent intent = new Intent(mContext,unityActivity.class);intent.putExtra("name", "Activity");this.startActivity(intent); } }
新建一个类脚本,这个Activity是继承于UnityPlayerActivity。
package com.example.androidcallunity;import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import com.unity3d.player.UnityPlayerActivity;public class unityActivity extends UnityPlayerActivity {protected void onCreate(Bundle savedInstanceState) { // call UnityPlayerActivity.onCreate() super.onCreate(savedInstanceState); // print debug message to logcat Log.d("OverrideActivity", "onCreate called!"); }}
如果你的unity程序LAUNCHER Activity不是UnityPlayerActivity,那么你在Intent 中就得写unity工程中的AndroidManifest.xml LAUNCHERActivity的类
Intent intent = new Intent(mContext,LAUNCHERActivity.class);
this.startActivity(intent);
Run As
点击按钮,启动unity开发界面
- Android启动Unity
- Unity启动Android安装APK
- android秒启动unity,和给unity添加过渡图片
- unity发布Android默认启动类
- Unity apk启动Logo的设置 Android层
- Unity Android 导入 Unity
- 修改Unity导出Android工程启动时黑屏,启动时间过长
- Unity无法启动问题解决
- Unity 带参数启动
- Android-Unity
- Android导出aar插件供Unity使用以及通过android scheme启动unityApp
- [Unity优化]Unity Android Profiler
- Unity3D游戏开发之“重写Unity Android Splash,实现启动无黑屏
- Unity3D游戏开发之“重写Unity Android Splash,实现启动无黑屏”
- UNITY 3.5 启动报错
- ubuntu unity启动项配置
- Unity 启动画面淡入淡出
- Unity 启动画面淡入淡出
- phpMyAdmin 3.5.8 在 Safari 中白屏问题的解决
- 手把手教你如何定义多个navigationbar上面的Button
- 在三星smart TV上开发widget-入门篇
- 关于Spring的69个面试问答
- 苹果Swift语言入门教程
- Android启动Unity
- 黑马程序员_JAVA之StringBuffer 与 StringBuilder
- Android view.setTag的妙用。
- Apple Swift编程语言入门教程
- 翻译】Emmet(Zen Coding)官方文档 之七 一览表
- MFC Is MVC
- struts2的处理流程
- 十五周项目一
- 2.13子数组的最大乘积