文章目录 一、 C# 调用 Java 的相关方法介绍 1、 AndroidJavaClass 原型 2、 调用 Java 方法 调用普通方法 调用静态方法 3、 获取 Java 字段 获取普通字段...原型 AndroidJavaClass 原型如下 : using UnityEngine; namespace UnityEngine { // // 摘要: // AndroidJavaClass...AndroidJavaClass。...public AndroidJavaClass(string className); } } 创建 AndroidJavaClass 实例对象 , 传入一个 String 字符串类型的 全路径类名即可..., 注意要带包名 ; // 创建 AndroidJavaClass 类 AndroidJavaClass androidJavaClass = new AndroidJavaClass("kim.hsl.mylibrary.Student
()里面的是自己的包名+类名 这样写的可以不用继承UnityPlayerActivity也可以用 unity代码: AndroidJavaClass jc = new AndroidJavaClass...自己的类写一个静态构造方法 注意:这里的AndroidJavaClass()里面的是自己的包名+类名 这样写的可以不用继承UnityPlayerActivity也可以用 我这里是写了一个静态构造方法...,先通过Unity拿到这个方法,然后通过这个方法来调用这个类里面写的非静态方法 说到底还是先用了静态方法获取的第一步 unity代码: AndroidJavaClass jc =...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic...("currentActivity"); AndroidJavaClass toast = new AndroidJavaClass("android.widget.Toast
Application.isEditor) { AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent...intentObject.Call("setAction", intentClass.GetStatic("ACTION_SEND")); AndroidJavaClass...uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic...; intentObject.Call("setType", "image/jpeg"); AndroidJavaClass...unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity
R = new AndroidJavaClass("android.R$id"); return currentActivity.Call...(系统默认为 false,所以不自己写方法是不会退出 App 的) } public void InitSDK() { //AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //AndroidJavaObject jo = jc.GetStatic...这个就是相当于C#到AndroidJava的类的映射 ---- 调用静态方法Android中类的静态方法 和获取对应的静态字段 AndroidJavaClass jc = new AndroidJavaClass...//public类型的字段 例子 AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast"); Toast.CallStatic
ResultText.text = "show the click event"; } public void BtnShwMessage() { AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic...GetInformation"); } // Update is called once per frame void Update () { } } 代码中: AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject
OnGUI() { GUI.skin = skin; if(GUILayout.Button("打开手机相册")) { //调用我们制作的Android插件打开手机相册 AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic...TakePhoto","takeSave"); } if(GUILayout.Button("打开手机摄像机")) { //调用我们制作的Android插件打开手机摄像机 AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic
AndroidManifest.xml文件一起放到u3d的 Assets\Plugins\Android\ 目录下 u3d部分: 1.c#脚本,随便用什么触发 public void BtnShwMessage() { //AndroidJavaClass...:通过指定类名可以构造出一个类 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
, 4.0f) 坐标位置 //this.transform.localPosition = new Vector3(4.0f, 4.0f, 4.0f); // 创建 AndroidJavaClass...类对象 , 只能调用静态方法 AndroidJavaClass androidJavaClass = new AndroidJavaClass("kim.hsl.mylibrary.Student
Invoke("Quit", 1); } } void ShowAndroidToastMessage(string message) { AndroidJavaClass...unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject unityActivity...= null) { AndroidJavaClass toastClass = new AndroidJavaClass("android.widget.Toast
GUI.Button(new Rect(100,100,300,300),"SendMessage")) { //点击事件 using (AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using (AndroidJavaObject
jc = new AndroidJavaClass("com.mx.sdkbase.MainActivity"); 31 //调用Java中的静态方法,单例模式,返回当前Activity...AndroidJavaClass 和 AndroidJavaObject 。这两个类在Unity API手册里面有详细的解释。 ..._jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 下面的代码是获取到UnityPlayer类中的静态字段,它的返回值类型是AndroidJavaObject...需要注意的是此时的AndroidJavaClass构造函数中传递的字符串就不是 "com.unity3d.player.UnityPlayer" 了。...jc = new AndroidJavaClass("com.mx.sdkbase.MainActivity"); //调用Java中的静态方法,单例模式,返回当前Activity实例
activity = null) { Debug.Log(text); if (activity == null) { AndroidJavaClass...UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); activity...= UnityPlayer.GetStatic("currentActivity"); } AndroidJavaClass Toast...= new AndroidJavaClass("android.widget.Toast"); AndroidJavaObject context = activity.Call<
System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SDKTest : MonoBehaviour { private AndroidJavaClass...public Text text; // Start is called before the first frame update void Start() { //这两行是固定写法 jc = new AndroidJavaClass
} }); return; } } } Unity端: AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic
InputField input1; private InputField input2; void Start() { //固定写法 AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic<AndroidJavaObject
void WxShareText(string text,EnWxShareType type) { AndroidJavaObject pluginObject = new AndroidJavaClass...EnWxShareType type = EnWxShareType.WXSceneSession) { AndroidJavaObject pluginObject = new AndroidJavaClass
Application.platform == RuntimePlatform.Android) { try { using (AndroidJavaClass...unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
主要是 AndroidJavaClass 和 AndroidJavaObject 类提供了一种在运行时从 C# 调用 Java 的能力。...这是我们在 C# 桥接代码中调用原生 Java 的示例:private static void ImurOpenSurvey(string surveyId, string urlparams){ AndroidJavaClass...unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity...= unityPlayer.GetStatic("currentActivity"); AndroidJavaClass surveyClass = new...AndroidJavaClass("com.tencent.imur.survey.IMurSurveyAdapter"); surveyClass.CallStatic("openSurvey
: MonoBehaviour { void Update () { if (Input.GetMouseButtonDown(0)) { AndroidJavaClass...jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic
领取专属 10元无门槛券
手把手带您无忧上云