这些知识主要是在接安卓的SDK或者调用安卓原生接口时有用,比如说控制安卓系统的音量大小,调用安卓原生的相册选择图片功能,调用安卓相机,接入微信登录的sdk之类的用的到。
unity导出调用java代码的安卓apk的方法有2种 1.unity导出安卓工程,然后用andriodStudio打开项目,在安卓工程添加java代码,然后在andriodStudio打包。 2.安卓项目添加java代码后导出Jar包,在unity3d中使用,直接在unity打包。 第2种比第一种省时间,但是第一种稍加修改就能变成第2种。 今天我们来讲一下第一种 首先新建一个空场景摆上UI 然后新建一个MainScript脚本,写上如下图的代码 把MainScript挂在如图位置

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MainScript : MonoBehaviour
{
#if UNITY_ANDROID
AndroidJavaObject currActivity;
#endif
//UI组件
Button button;
InputField inputField;
Text text;
// Start is called before the first frame update
void Start()
{
#if UNITY_ANDROID
//保存当前安卓活动的引用
currActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
#endif
//获取界面上的UI实例
button = transform.Find("Button").GetComponent<Button>();
inputField = transform.Find("InputField").GetComponent<InputField>();
text = transform.Find("Text").GetComponent<Text>();
//按钮添加点击响应
button.onClick.AddListener(Hello);
}
public void Hello()
{
#if UNITY_ANDROID
//调用安卓里面对应的hello方法
currActivity.Call("Hello", inputField.text);
#endif
}
// 等待安卓java代码调用的方法
public void Accept(string str)
{
text.text = str;
}
}
然后填写安卓包名 点击File-->Build Settings 勾选导出项目,然后点击导出 用Android studio打开导出的项目 在UnityPlayerActivity里面添加我们自己写的方法

public void Hello(String str)
{
Log.w("hello", str);
//调用安卓原生窗口显示信息
Toast.makeText(this, "hello: " + str, Toast.LENGTH_SHORT).show();
//调用unity场景中Cavas游戏对象上的Accept方法
UnityPlayer.UnitySendMessage("Canvas", "Accept", "安卓收到消息: " + str);
}
然后点击菜单Build -> Build Bundle(s)/APK(s) -> Build APK打出不带签名的APK (打正式apk应该选择Build -> Generate Signed Build Bundle/APK ,这个选项是打带签名的apk包,这里为了图省事就打不带签名的APK包) 完成后点击locate就能获取APK 手机apk,点击hello后效果如下



本文详细介绍了如何在Unity中调用Android原生代码,包括设置Unity脚本与Android代码的交互,导出Unity项目至Android Studio,以及实现按钮点击事件跨平台响应的全过程。
2185

被折叠的 条评论
为什么被折叠?



