Unity调用Android

来源:互联网 发布:centos 安装squid 编辑:程序博客网 时间:2024/05/07 23:51

Unity调用Android

  • 打开Unity,在Project中创建文件,Assects→Plugins→Android→src,创建好以后在里面添加java类

package com.unity3d.BabelRunning;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import java.lang.String;import com.unity3d.player.UnityPlayer;import com.unity3d.player.UnityPlayerActivity;public class BabelRunningActivity extends UnityPlayerActivity {@Overrideprotected void onCreate(Bundle bdl){super.onCreate(bdl);Log.d("UnityInterface", "=========> BabelRunningActivity start!!!!!!!\n");}public void callByObject(){}static public boolean isUnlocked() {return true;}static public void FeeExit(Context paramContext){}}

这里面也可以加其他的类,不是一定要加从UnityPlayerActivity派生的类,你也可以看看Unity自带的UnityPlayerActivity,打开Finder→应用程序→Unity→点击Unity图标,鼠标右键选择“显示包内容”→Contents→PlaybackEngines→AndroidPlayer→bin→classes.jar,jar文件要用java反编译工具打开。

  • 把创建好的类打包成jar,首先用eclipse编译,会在bin→classes→com→unity3d→BabelRunning文件夹里面生成BabelRunningActivity.class文件,再用eclipse导出BabelRunningActivity.jar,把导出的jar用java反编译软件(JD_GUI)打开。如果看到了 com.unity3d.BabelRunning 这本包,这个包的名字一定要跟 java文件中的“ package com.unity3d.BabelRunning;”一样,如果不一样,可以调整class文件的目录,再打jar包,直到一样为止。
  • 把生成的jar放在Assets→Plugins→Android→libs下面。
  • 编写C#文件,在Android目录下面创建CmBillingResult.cs

using UnityEngine;using System.Collections;using System;using System.Collections.Generic;public class CmBillingResult : MonoBehaviour {private int waitTime = 10;private AndroidJavaClass klass = null;// Use this for initializationvoid Start () {klass = new AndroidJavaClass("com.unity3d.BabelRunning.BabelRunningActivity");// 通过对象调用AndroidJavaObject jo = klass.GetStatic<AndroidJavaObject>("currentActivity");        jo.Call("callByObject");// 通过类调用,有返回值klass.CallStatic<bool>("isUnlocked");// 通过类调用,当前的activity作为参数klass.CallStatic("FeeExit", curActivity);}}

  • 创建好以后加到Main Camera对象上面。

klass.CallStatic("方法名", "参数");
第一个参数为方法名称,第二个参数才是真正的参数。

  • AndroidManifest里面的入口改成com.unity3d.BabelRunning.BabelRunningActivity

Android调用Unity

Android调用Unity比较简单。

UnityPlayer.UnitySendMessage("Main Camera", "方法名称", "参数1", "参数2"...);
第一个参数,为当前对象,第二个参数为当前对象上面脚本的方法名称,后面的才是真的参数。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 陌陌不能最小化观看直播视频怎么办 苏州园区公积金密码忘记了怎么办 房产企业申请破产买的房子怎么办 被业务员骗了买了保险怎么办 孩子特别害怕老师严厉的批评怎么办 4k电视看有线电视不清晰怎么办 移动9.9流量4g网用完了怎么办 东方头条验证码已经被注册了怎么办 打王者两个人吵架被夹在中间怎么办 顾客拿过期的食品过来投诉怎么办 老婆总是埋怨我父母我该怎么办? 代款公司如果使用暴力追债怎么办 法院拍卖款分配有疑意怎么办 法院拍卖买到的房子里有户口怎么办 新注册手机邮箱不和电脑同步怎么办 移动4g盒当月流量封顶怎么办 昆仑加油卡密码忘记了怎么办 昆仑银行e盾密码忘记了怎么办 中石化加油卡密码忘记了怎么办 壳牌加油卡密码忘了怎么办 中国石化加油卡密码忘了怎么办 中石化加油卡密码忘了怎么办 中石化加油卡需要密码忘了怎么办 求不熟领导办事送礼不收怎么办 送礼给领导不收好像很生气怎么办 加油卡没有密码加油后锁住怎么办 个人怎么办中石化油卡怎么开公司票 中石化副卡挂失后钱怎么办 中石化的加油卡丢了怎么办 得仕卡过期3年了怎么办 如果在超市买到过期商品怎么办 华润万家买的豆干过期了吃了怎么办 华润万家购物卡过期了怎么办 杜鹃花水浇多了树叶都掉了怎么办 游客行程因天气原因无法进行怎么办 携程旅游途中提前结束行程怎么办 小区附近商家卖东西很吵怎么办? 小区门口卖东西的喇叭太吵怎么办 我老婆是二婚带的小孩怎么办户口 ck手表带了脱不下来怎么办 消毒柜开孔尺寸高度太高了怎么办