Tag: unity3d

Android 4.1.2上的相机是黑色的Unity3D和Vuforia

我工作的公司正在构建一个带有vuforia(版本5.x)和Unity3D(版本5.3.5f1个人)集成的Android应用程序。 在最新的Android设备中,相机打开正常但我们在三星Galaxy S2(4.1.2)等旧设备中遇到问题。 当设备通过vuforia打开相机时,屏幕是黑色的,如果我们尝试拍照,图像显然也是黑色的。 我的活动只是实例化统一播放器,它就像下面的代码: public class MainActivity extends AppCompatActivity { protected UnityPlayer mUnityPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.RGBX_8888); // <— This makes xperia play happy mUnityPlayer = new UnityPlayer(this); setContentView(mUnityPlayer); mUnityPlayer.requestFocus(); } public void onImageSaved(final String path) { final Intent intent = new Intent(MainActivity.this, CameraPreviewActivity.class); final Bundle bundle = new Bundle(); […]

为统一3D创建原生Flashlight Android Java插件

我有一个问题,我不知道如何从Unity访问我的java插件。 这是Java代码: package fr.vincentmazet.utilslibrary; import android.content.Context; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraManager; import com.unity3d.player.UnityPlayerActivity; public class FlashLight extends UnityPlayerActivity { private CameraManager camManager; private Context context; public void FlashLight(Context context){ this.camManager = (CameraManager) context.getSystemService(context.CAMERA_SERVICE); this.context = context; } public boolean enableFlash(){ try { camManager.setTorchMode(“0”, true); } catch (CameraAccessException e) { e.printStackTrace(); } return true; } public boolean […]

commandinfokationfailure,有谁知道如何修复这个bug?

尝试构建unity3d时出现此错误: Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details. D:\Android\adt-bundle-windows-x86-20140702\sdk\build-tools\android-4.4W\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “D:/Android/adt-bundle-windows-x86-20140702/sdk/platforms/android-21\android.jar” -F bin/resources.ap_ –extra-packages stderr[ ERROR: No argument supplied for ‘–extra-packages’ option Android Asset Packaging Tool 我尝试重新安装jdk,android sdk,并重新导入软件包本身,但我收到同样的错误。 有人可以帮帮我吗?

如何在从Unity调用的Java插件中创建Android Handler

所以,假设您有一个Unity Java插件,您可以像这样调用Java插件 private static readonly AndroidJavaClass m_somePlugin = new AndroidJavaClass(“com.unity3d.Plugin.blah.SomePlugin”); using (var unityPlayer = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”)) { using (var currentActivity = unityPlayer.GetStatic(“currentActivity”)) { m_somePlugin.CallStatic(“onInitialise”, currentActivity); } } 插件看起来像这样 public class SomePlugin { static public void onInitialise(final Activity currentActivity) { Handler someHandler = new Handler(); } } 一切都很简单。 除了它会崩溃。 创建处理程序是原因。 我猜它是一个线程问题。 所以问题是,在我传入的活动中,如何在Java插件中创建处理程序? 谁知道?

无法在主线程上启动Handler

我正在使用.jar api从Unity3D读取Google Fit数据。 我现在面临的问题是,当我想执行这段代码时: private void buildFitnessClient() { mClient = new GoogleApiClient.Builder(myContext).addApi(Fitness.HISTORY_API) .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) .addConnectionCallbacks(new ConnectionCallbacksListener()) .enableAutoManage(this, 0, new ConnectionFailedListener()).build(); } 我得到错误:java.lang.IllegalStateException:必须从进程的主线程调用 此错误是由于代码行的最后一句中的此引用所致。 现在在线我发现我可以通过在主Looper上启动Handler来解决这个问题,我尝试使用以下代码: new Handler(Looper.getMainLooper()).post( new Runnable() { @Override public void run() { try { buildFitnessClient(); } catch (Exception ex) { Log.i(TAG, ex.getMessage() + “\n”); } } }); 出于某种原因,我的Unity应用程序立即崩溃,通常我可以得到错误,因为我使用try catch语句。 有了这个问题,它立即崩溃,没有我可以检查的日志。 当我在没有mainlooper的情况下创建Handler时,例如: new Handler() […]

如何将JNI C#类传递给Java或处理这种情况?

我试图从C#调用Java方法,它从java中调用如下: EgamePay.pay(thisActivity, payAlias, new EgamePayListener() { @Override public void paySuccess(String alias) { } @Override public void payFailed(String alias, int errorInt) { } @Override public void payCancel(String alias) { } }); 前两个参数都可以,但是如何在C#中传递EgamePayListner? 简单地创建具有相同function的C#类将无法正常工作…… 这是我目前正在做的事情: using (AndroidJavaClass jc = new AndroidJavaClass(“cn.egame.terminal.smspay.EgamePay”)) { System.IntPtr cls_Activity = AndroidJNI.FindClass(“com/unity3d/player/UnityPlayer”); System.IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, “currentActivity”, “Landroid/app/Activity;”); object[] p = { fid_Activity, […]

从Unity Script调用Android NDKfunction

所以我正在创建一个使用Unity的Android应用程序……我从Unity获得了一些资产包,但我不知道Unity开始之前的url。 因此Unity需要调用Native(Android)端的函数来获取url。 我已经失去了一段时间如何做到这一点(Unity文档是非常可怕的imho)。 我决定用NDK来帮助我。 没有Unity,关于我的库文件的一切都可以解决……现在问题是在Unity中调用这些C函数。 这是我的lib: #include #include #include #define DEBUG_TAG “NDK_blahy” extern “C” { jstring Java_com_blah_blah_getURL(JNIEnv * env, jobject this); void Java_com_blah_blah_setURL(JNIEnv * env, jobject this, jstring URL); } jstring url; void Java_com_blah_blah_setURL(JNIEnv * env, jobject this, jstring URL) { url = URL; jboolean isCopy; const char * szLogThis = (*env)->GetStringUTFChars(env, URL, &isCopy); __android_log_print(ANDROID_LOG_DEBUG, […]

随着持续时间和模式振动

我正在开发一个简单的插件。 现在我想添加一个振动属性。 但是这段代码不起作用。 我哪里错了? 我的代码如下。 你能帮我吗。 安卓: import android.os.Vibrator; public class Brid { private Context context; private static Brid instance; public Brid() { this.instance = this; } public static Brid instance() { if(instance == null) { instance = new Brid(); } return instance; } public void setContext(Context context) { this.context = context; } public void […]

在Unity中使用自定义清单文件和权限?

我目前正在尝试使用Unity3D为Android编写一个小游戏。 因为我想要一个可见的状态栏,我修改了项目文件夹(C:\ Users \ Public \ Documents \ Unity Projects \ ProjectName \ Temp \ StagingArea)中的AndroidManifest,如下所示: 但每次我生成APK时,Unity都会将Android Manifest更改为: Unity3D每次都会改变我修改过的Manifests吗?