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开发界面

0 0
原创粉丝点击