Android启动Unity

例如在一个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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值