UnityAPI.Android安卓(Yanlz+Unity+API+Android+Input+JavaClass+JavaObject+JavaProxy+JNI+JNIHelper+立钻哥哥+)

UnityAPI.Android安卓

版本

作者

参与者

完成日期

备注

UnityAPI_Android_V01_1.0

严立钻

 

2018.08.19

 

 

 

 

 

 

 

 

 

#《UnityAPI.Android安卓》发布说明:

++++“UnityAPI.Android安卓”是对UnityAPIAndroid类的剖析和拓展;

 

 

 

 

#Android安卓

#Android安卓

#Android安卓

++++A、AndroidInput 安卓输入

++++B、AndroidJavaClass 安卓Java类

++++C、AndroidJavaObject 安卓Java对象

++++D、AndroidJavaProxy 安卓Java代理

++++E、AndroidJNI 安卓本地编程接口

++++F、AndroidJNIHelper 安卓本地接口辅助类

 

 

 

 

#A、AndroidInput 安卓输入

#A、AndroidInput 安卓输入

++A、AndroidInput 安卓输入

++++A.1、Description 描述

++++A.2、Static Variables 静态变量

++++A.3、Static Functions 静态函数

 

 

 

 

##A.1、Description 描述

##A.1、Description 描述

++A.1、Description 描述

++++立钻哥哥:AndroidInput为离屏(off-screen)触摸提供输入支持,比如触摸板;

 

 

 

 

 

##A.2、Static Variables 静态变量

##A.2、Static Variables 静态变量

++A.2、Static Variables 静态变量

++++A.2.1、secondaryTouchEnabled 系统是否提供触摸板输入

++++A.2.2、secondaryTouchHeight 触摸板的高度

++++A.2.3、secondaryTouchWidth 触摸板的宽度

++++A.2.4、touchCountSecondary 触摸板的数量

 

 

 

 

###A.2.1、secondaryTouchEnabled 系统是否提供触摸板输入

###A.2.1、secondaryTouchEnabled 系统是否提供触摸板输入

++A.2.1、secondaryTouchEnabled 系统是否提供触摸板输入

++++立钻哥哥:AndroidInput.secondaryTouchEnabled 是否提供触摸板输入

static bool secondaryTouchEnabled;

 

++Description描述

++++立钻哥哥:该属性表示系统是否提供触摸板输入

 

 

 

 

 

###A.2.2、secondaryTouchHeight 触摸板的高度

###A.2.2、secondaryTouchHeight 触摸板的高度

++A.2.2、secondaryTouchHeight 触摸板的高度

++++立钻哥哥:AndroidInput.secondaryTouchHeight 触摸板的高度

static int secondaryTouchHeight;

 

++Description描述

++++立钻哥哥:该属性表示触摸板的高度

 

 

 

 

 

###A.2.3、secondaryTouchWidth 触摸板的宽度

###A.2.3、secondaryTouchWidth 触摸板的宽度

++A.2.3、secondaryTouchWidth 触摸板的宽度

++++立钻哥哥:AndroidInput.secondaryTouchWidth 触摸板的宽度

static int secondaryTouchWidth;

 

++Description描述

++++立钻哥哥:该属性表示触摸板的宽度

 

 

 

 

 

###A.2.4、touchCountSecondary 触摸板的数量

###A.2.4、touchCountSecondary 触摸板的数量

++A.2.4、touchCountSecondary 触摸板的数量

++++立钻哥哥:AndroidInput.touchCountSecondary 触摸板的数量

static int touchCountSecondary;

 

++Description描述

++++立钻哥哥:触摸板的数量,当前帧内被确保不会改变(只读)

 

 

 

 

 

 

##A.3、Static Functions 静态函数

##A.3、Static Functions 静态函数

++A.3、Static Functions 静态函数

++++A.3.1、GetSecondaryTouch() 表示触摸板对象的状态

 

 

 

###A.3.1、GetSecondaryTouch 表示触摸板对象的状态

###A.3.1、GetSecondaryTouch 表示触摸板对象的状态

++A.3.1、GetSecondaryTouch 表示触摸板对象的状态

++++立钻哥哥:AndroidInput.GetSecondaryTouch 获取触摸板状态

static Touch GetSecondaryTouch(int index);

 

++Description描述

++++立钻哥哥:返回一个表示触摸对象的状态(不分配临时变量)

 

 

 

 

 

 

 

 

#B、AndroidJavaClass 安卓Java类

#B、AndroidJavaClass 安卓Java类

++B、AndroidJavaClass 安卓Java类

++++B.1、Description 描述

++++B.2、Constructor 构造器

 

 

 

##B.1、Description 描述

##B.1、Description 描述

++B.1、Description 描述

++++[Namespace]UnityEngine;

++++[Inherits from]AndroidJavaObject;

++++立钻哥哥:AndroidJavaClass是Unity表示一个java.lang.Class的泛型实例

 

 

 

 

 

 

##B.2、Constructor 构造器

##B.2、Constructor 构造器

++B.2、Constructor 构造器

++++B.2.1、AndroidJavaClass() 基于类名className构造一个AndroidJavaClass

 

 

 

###B.2.1、AndroidJavaClass() 基于类名className构造一个AndroidJavaClass

###B.2.1、AndroidJavaClass() 基于类名className构造一个AndroidJavaClass

++B.2.1、AndroidJavaClass() 基于类名className构造一个AndroidJavaClass

++++立钻哥哥:AndroidJavaClass.AndroidJavaClass 构造安卓Java类

AndroidJavaClass(string className);

++++[className]:指定Java的类名;

 

++Description描述

++++立钻哥哥:基于类名className,构造一个AndroidJavaClass

++++这实际上意味着查找类的类型,并分配一个特定类型的java.lang.Class对象;

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaClass jc = new AndroidJavaClass(java.lang.System);

        jc.CallStatic(gc);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaClass jc = new AndroidJavaClass(android.os.Build);

        string manufacturer = jc.Get<string>(MANUFACTURER);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

 

 

 

 

 

 

 

#C、AndroidJavaObject 安卓Java对象

#C、AndroidJavaObject 安卓Java对象

++C、AndroidJavaObject 安卓Java对象

++++C.1、Description 描述

++++C.2、Constructors 构造函数

++++C.3、Functions 函数

 

 

 

##C.1、Description 描述

##C.1、Description 描述

++C.1、Description 描述

++++立钻哥哥:AndroidJavaObject是Unity表示一个java.lang.Object的泛型实例

++++可以用作type-less接口来实现任意Java类;

 

 

 

 

 

##C.2、Constructors 构造函数

##C.2、Constructors 构造函数

++C.2、Constructors 构造函数

++++C.2.1、AndroidJavaObject() 基于类名构造一个AndroidJavaClass

 

 

 

###C.2.1、AndroidJavaObject() 基于类名构造一个AndroidJavaClass

###C.2.1、AndroidJavaObject() 基于类名构造一个AndroidJavaClass

++C.2.1、AndroidJavaObject() 基于类名构造一个AndroidJavaClass

++++立钻哥哥:AndroidJavaObject.AndroidJavaObject 构造安卓Java对象

AndroidJavaObject(string className, params object[] args);

++++[className]:指定的Java类名;

++++[args]:传递到构造器的参数数组;

 

++Description描述

++++立钻哥哥:基于类名,构造一个AndroidJavaObject;

++++这实际上意味着查找类的类型,分配一个对象,并运行指定的构造方法;

 

 

 

 

 

##C.3、Functions 函数

##C.3、Functions 函数

++C.3、Functions 函数

++++C.3.1、Dispose() IDisposable回调函数

++++C.3.2、Call() 在对象上调用一个Java方法(非静态)

++++C.3.3、CallStatic() 调用一个静态Java方法

++++C.3.4、Get() 获取一个对象上的字段值(非静态)

++++C.3.5、Set() 在一个对象上设置字段的值(非静态)

++++C.3.6、GetStatic() 获取一个对象类型上的静态字段值

++++C.3.7、SetStatic() 设置一个对象类型上的静态字段值

++++C.3.8、GetRawObject() 检索原始对象指向Java对象

++++C.3.9、GetRawClass() 检索原始类指向Java对象

 

 

 

 

###C.3.1、Dispose() IDisposable回调函数

###C.3.1、Dispose() IDisposable回调函数

++C.3.1、Dispose() IDisposable回调函数

++++立钻哥哥:AndroidJavaObject.Dispose 处理

void Dispose();

 

++Description描述

++++立钻哥哥:IDisposable回调函数

++++和using(){}配合使用;

 

 

 

 

 

###C.3.2、Call() 在对象上调用一个Java方法(非静态)

###C.3.2、Call() 在对象上调用一个Java方法(非静态)

++C.3.2、Call() 在对象上调用一个Java方法(非静态)

++++立钻哥哥:AndroidJavaObject.Call 调用

void Call(string methodName, params object[] args);

++++[methodName]:指定的方法被调用;

++++[args]:参数的数组传递到方法;

 

++Description描述

++++立钻哥哥:在对象上调用一个Java方法(非静态)

++++调用一个方法,返回类型为void,使用普通版本;

++++调用一个方法,返回类型为void,使用泛型版本;

//使用普通版本

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaObject jo = new AndoridJavaObject(android.content.res.Configuration);

        jo.Call(setToDefaults);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

//使用泛型版本

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaObject jo = new AndroidJavaObject(java.lang.String, some string);

        int hash = jo.Call<int>(hashCode);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

 

 

 

 

###C.3.3、CallStatic() 调用一个静态Java方法

###C.3.3、CallStatic() 调用一个静态Java方法

++C.3.3、CallStatic() 调用一个静态Java方法

++++立钻哥哥:AndroidJavaObject.CallStatic 静态调用

void CallStatic(string methodName, params object[] args);

++++[methodName]:指定的方法被调用;

++++[args]:参数的数组传递到方法;

 

++Description描述

++++立钻哥哥:调用一个静态Java方法

++++调用一个静态方法,返回类型为void,使用普通版本;

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaObject jo = new AndroidJavaObject(android.os.Binder);

        jo.CallStatic(flushPendingCommands);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

 

 

 

 

###C.3.4、Get() 获取一个对象上的字段值(非静态)

###C.3.4、Get() 获取一个对象上的字段值(非静态)

++C.3.4、Get() 获取一个对象上的字段值(非静态)

++++立钻哥哥:AndroidJavaObject.Get 获取域类型

FieldType Get(string fieldName);

++++[fieldName]:域的名称;

 

++Description描述

++++立钻哥哥:获取一个对象上的域值(非静态)

++++一般参数定义域类型;

using UnityEngine;

using System.Collections;

 

public class MyAndroidClass : MonoBehaviour{

    void Start(){

        AndroidJavaObject jo = new AndroidJavaObject(android.os.Message);

        int valueString = jo.Get<int>(what);

    }

 

}    //立钻哥哥:public class MyAndroidClass:MonoBehaviour{}

 

 

 

 

 

###C.3.5、Set() 在一个对象上设置字段的值(非静态)

###C.3.5、Set() 在一个对象上设置字段的值(非静态)

++C.3.5、Set() 在一个对象上设置字段的值(非静态)

++++立钻哥哥:AndroidJavaObject.Set 设置域类型

void Set(string fieldName, FieldType val);

++++[fieldName]:域的名称;

++++[val]:指定到域的值,它必须匹配域类型;

 

++Description描述

++++立钻哥哥:在一个对象上设置域的值(非静态)

++++一般参数定义域类型;

 

 

 

 

 

###C.3.6、GetStatic() 获取一个对象类型上的静态字段值

###C.3.6、GetStatic() 获取一个对象类型上的静态字段值

++C.3.6、GetStatic() 获取一个对象类型上的静态字段值

++++立钻哥哥:AndroidJavaObject.GetStatic 获取静态域类型

FieldType GetStatic(string fieldName);

 

++Description参数

++++立钻哥哥:获取一个对象类型上的静态域值

++++一般参数定义域类型;

 

 

 

 

 

###C.3.7、SetStatic() 设置一个对象类型上的静态字段值

###C.3.7、SetStatic() 设置一个对象类型上的静态字段值

++C.3.7、SetStatic() 设置一个对象类型上的静态字段值

++++立钻哥哥:AndroidJavaObject.SetStatic 设置静态域类型

void SetStatic(string fieldName, FieldType val);

++++[fieldName]:域的名称;

++++[val]:指定到域的值,它必须匹配域类型;

 

++Description描述

++++立钻哥哥:设置一个对象类型上的静态字段值

 

 

 

 

 

###C.3.8、GetRawObject() 检索原始对象指向Java对象

###C.3.8、GetRawObject() 检索原始对象指向Java对象

++C.3.8、GetRawObject() 检索原始对象指向Java对象

++++立钻哥哥:AndroidJavaObject.GetRawObject 获取原始对象

IntPtr GetRawObject();

 

++Description描述

++++立钻哥哥:检索原始对象指向Java对象

 

 

 

 

 

###C.3.9、GetRawClass() 检索原始类指向Java对象

###C.3.9、GetRawClass() 检索原始类指向Java对象

++C.3.9、GetRawClass() 检索原始类指向Java对象

++++立钻哥哥:AndroidJavaObject.GetRawClass 获取原始类

IntPtr GetRawClass();

 

++Description描述

++++立钻哥哥:检索原始类指向Java对象

 

 

 

 

 

 

 

 

#D、AndroidJavaProxy 安卓Java代理

#D、AndroidJavaProxy 安卓Java代理

++D、AndroidJavaProxy 安卓Java代理

++++D.1、Description 描述

++++D.2、Variables 变量

++++D.3、Constructors 构造函数

++++D.4、Function 函数

 

 

 

##D.1、Description 描述

##D.1、Description 描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++立钻哥哥推荐的拓展学习链接(Link_Url)

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++Unity5.x用户手册https://blog.csdn.net/VRunSoftYanlz/article/details/81712741

++++Unity面试题ABChttps://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++Unity面试题Dhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630838

++++Unity面试题Ehttps://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity面试题Fhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630945

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++Unity知识点0008https://blog.csdn.net/VRunSoftYanlz/article/details/81153606

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++专题:设计模式(精华篇)https://blog.csdn.net/VRunSoftYanlz/article/details/81322678

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++框架知识点https://blog.csdn.net/VRunSoftYanlz/article/details/80862879

++++游戏框架(UI框架夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80781140

++++游戏框架(初探篇)https://blog.csdn.net/VRunSoftYanlz/article/details/80630325

++++Lua快速入门篇(基础概述)https://blog.csdn.net/VRunSoftYanlz/article/details/81041359

++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502

++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818

++++UnityAPI.Rigidbody刚体https://blog.csdn.net/VRunSoftYanlz/article/details/81784053

++++UnityAPI.Material材质https://blog.csdn.net/VRunSoftYanlz/article/details/81814303

++++UnityAPI.Android安卓https://blog.csdn.net/VRunSoftYanlz/article/details/81843193

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

--_--VRunSoft:lovezuanzuan--_--

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity 中,可以使用 AndroidAPI 来读取本地图片。下面是一个简单的代码示例: ```csharp using UnityEngine; using System.IO; public class LoadLocalImage : MonoBehaviour { public string imagePath; void Start() { // 获取 Android 的 Context 对象 AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject context = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity").Call<AndroidJavaObject>("getApplicationContext"); // 读取图片文件 string filePath = Path.Combine(Application.streamingAssetsPath, imagePath); AndroidJavaObject file = new AndroidJavaObject("java.io.File", filePath); // 创建 Bitmap 对象 AndroidJavaClass bitmapFactory = new AndroidJavaClass("android.graphics.BitmapFactory"); AndroidJavaObject bitmap = bitmapFactory.CallStatic<AndroidJavaObject>("decodeFile", file.Call<string>("getAbsolutePath")); // 将 Bitmap 转换为 Texture2D 对象 byte[] byteArray = bitmap.Call<byte[]>("getNinePatchChunk"); Texture2D texture = new Texture2D(1, 1); texture.LoadImage(byteArray); // 在 Unity 中显示图片 GetComponent<Renderer>().material.mainTexture = texture; } } ``` 上面的代码中,`imagePath` 是图片文件在 StreamingAssets 目录下的相对路径。在 Android 中,需要获取 Context 对象来操作文件系统。首先,创建一个 `AndroidJavaClass` 对象来获取 UnityPlayer 类,然后调用 `currentActivity` 方法获取当前 Activity 对象(即 UnityPlayerActivity),最后调用 `getApplicationContext` 方法获取 Context 对象。然后,使用 `java.io.File` 类读取图片文件。接着,使用 `android.graphics.BitmapFactory` 类创建 Bitmap 对象,并调用 `decodeFile` 方法解码图片文件。最后,将 Bitmap 转换为 Texture2D 对象,并在 Unity 中显示图片。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值