关于Unity项目中创建项目遇到的一些问题

时间:2022-12-21 21:17:31

1.Unity调用Android的方法默认不是在UI线程执行,所以在Android上写一些页面的重绘的方法,让Unity去调用时,注意要在Android中添加对应的runOnUiThread才可以;

2.Android library中包含资源,此时需要将资源导入到Unity项目中,那么在Android中就不可以直接使用R.id来寻找资源,而是必须通过下面方式:

       public static int getLayoutResIDByName(Context context, String name)
{
return context.getResources().getIdentifier(name, "layout",
context.getPackageName());
} public static int getIdResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "id",
context.getPackageName());
} public static int getStringResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "string",
context.getPackageName());
} public static int getDrawableResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "drawable",
context.getPackageName());
}

3.Android与Unity之间的调用:

(1).Unity调用Java:UnityEngine提供了两个类来分别访问Java的实例对象以及类对象:AndroidJavaObjectAndroidJavaClass,前者表示java.lang.Object或其子类,后者表示java.lang.Class

(2).Java调用Unity:

<1>.通过AndroidJavaProxy进行无感知调用

<2>.通过com.unity3d.player.UnityPlayer.UnitySendMessage方法显式调用