问题标签 [android-unity-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - 使用 Unity 开发需要同时在 PC 和 Android VR 眼镜上运行的模拟器
我正在使用 Unity 开发模拟器,Sim 在 PC 上运行并连接到 Sim,一切正常。
问题是 SIM 卡可以 360 度旋转,因此我无法查看操作员站中的电脑屏幕,而且我希望玩家能够环顾四周。
为此,我需要将 VR 眼镜连接到 PC 上正在运行的设备并同时运行并看到相同的场景,所有控件都从 PC 到物理 sim 并返回,VR 仅用于那个(环顾四周)
我能找到的唯一解决方案是运行 node.js 服务器(为简单起见,运行 node.js,可以是任何服务器)并从那里获取数据。
我想知道是否有更好的方法来做到这一点。
抱歉没有显示任何解决方案,我还没有,不知道从哪里开始连接,模拟器在 PC 上完美运行,只是不知道如何连接到 VR 眼镜,所以两者都会看到相同的事物。
10倍
android - 制作 Unity Android 原生媒体播放器插件
我正在为统一制作一个原生 android 媒体播放器插件,一切正常,插件加载正确,参数正确传递给插件,即使播放器启动,但似乎什么都没有播放,没有声音出来。源代码是:
android - 如何在 Unity Android 插件中发现蓝牙设备?
我正在为Android开发Unity游戏,它使用Android 插件能够在游戏期间通过蓝牙发送数据。发送数据并建立与配对设备的连接工作正常。但是,我无法发现新的蓝牙设备。
在我的Plugin 类中(它还处理发送数据等,效果很好):
startBluetoothDeviceDiscovery 方法肯定被调用(由按钮触发),并且 bluetoothAdapter 已设置且不为空。设备上的蓝牙始终处于开启状态。
同样在Plugin 类中:
基本上,在发现新设备时,Android 文档所建议的内容。 https://developer.android.com/guide/topics/connectivity/bluetooth#DiscoverDevices
我想,也许周围没有设备,所以我希望在发现开始时已经触发接收器,所以我试图寻找BluetoothAdapter.ACTION_DISCOVERY_STARTED
:
在我的接收器 onReceive:
每次单击按钮并调用该方法时startBluetoothDeviceDiscovery()
都应该调用它,因为它总是启动蓝牙发现,但它仍然不起作用。
我最后的猜测是,由于插件不是一个活动,广播接收器无法访问。所以我将操作更改为BluetoothAdapter.ACTION_STATE_CHANGED
,然后当我打开和关闭设备上的蓝牙时,它突然在onReceive()
.
我的清单(复制到正确的 Unity 文件夹位置):
那么为什么我打开bluetoothAdapter.startDiscovery()
并发现接收器中没有接收到设备?
感谢您的任何帮助或想法:)
android-studio - 将价值从 Android Studio 传递到统一?
我正在使用 android studio 和 google vision 像本教程https://www.youtube.com/watch?v=mmuz8qIWcL8&t=702s做一个文本识别项目。但是我需要将识别出的文本传递给 Unity 以显示 3D 模型和一些与识别出的文本相关的信息。然后,用户可以查看和旋转该 3D 模型。问题是可以使用任何建议或方法将字符串或文本或值从 android studio 传递给 unity 吗?
android - 如何让 Android 插件从 Unity 的内部存储中读取 json 文件?
我成功地将所需的 json 文件添加到我的应用程序的内部存储中data/<packagename>/files/
。我想要实现的是,在我的 android 插件(在 Unity 应用程序内)中创建一个可以从内部存储读取相同 json 的函数。我怀疑,如果这在运行时甚至是可能的。我在我的插件 contentprovider 类中尝试了这个,String file_name=context.getFilesDir() + "/"+"stickers.json";
但我的应用程序在设备上崩溃了。
我认为的第二种选择是使用 UnitySendMessage 将整个 json 对象传递给 Android 插件(我以前从未使用过它)。
我希望插件读取内部存储的 json,因为我可以在运行时从统一动态修改 json,并从 android 插件代码执行我想要的功能。
更新
--------- beginning of crash
2020-05-30 14:09:32.275 22270-22270/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.Addy.Trace, PID: 22270
java.lang.RuntimeException: Unable to get provider com.plugin.unityapp.StickerContentProvider: java.lang.RuntimeException: contents.json file has some issues: /data/user/0/com.Addy.Trace/files/stickers.json: open failed: ENOENT (No such file or directory)
at android.app.ActivityThread.installProvider(ActivityThread.java:7416)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6956)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6844)
at android.app.ActivityThread.access$1300(ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1982)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7814)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)
Caused by: java.lang.RuntimeException: contents.json file has some issues: /data/user/0/com.Addy.Trace/files/stickers.json: open failed: ENOENT (No such file or directory)
at com.plugin.unityapp.StickerContentProvider.readContentFile(StickerContentProvider.java:164)
at com.plugin.unityapp.StickerContentProvider.getStickerPackList(StickerContentProvider.java:182)
at com.plugin.unityapp.StickerContentProvider.onCreate(StickerContentProvider.java:98)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2113)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2087)
at android.app.ActivityThread.installProvider(ActivityThread.java:7411)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6956)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6844)
at android.app.ActivityThread.access$1300(ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1982)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7814)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)
Caused by: java.io.FileNotFoundException: /data/user/0/com.Addy.Trace/files/stickers.json: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:496)
at java.io.FileInputStream.<init>(FileInputStream.java:159)
at com.plugin.unityapp.StickerContentProvider.readContentFile(StickerContentProvider.java:156)
at com.plugin.unityapp.StickerContentProvider.getStickerPackList(StickerContentProvider.java:182)
at com.plugin.unityapp.StickerContentProvider.onCreate(StickerContentProvider.java:98)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2113)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2087)
at android.app.ActivityThread.installProvider(ActivityThread.java:7411)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6956)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6844)
at android.app.ActivityThread.access$1300(ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1982)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7814)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)
Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Linux.open(Native Method)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7691)
at libcore.io.IoBridge.open(IoBridge.java:482)
at java.io.FileInputStream.<init>(FileInputStream.java:159)
at com.plugin.unityapp.StickerContentProvider.readContentFile(StickerContentProvider.java:156)
at com.plugin.unityapp.StickerContentProvider.getStickerPackList(StickerContentProvider.java:182)
at com.plugin.unityapp.StickerContentProvider.onCreate(StickerContentProvider.java:98)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2113)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2087)
at android.app.ActivityThread.installProvider(ActivityThread.java:7411)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6956)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6844)
at android.app.ActivityThread.access$1300(ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1982)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7814)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)
这是android studio的LOGCAT中的崩溃日志。从脚本中的统一,我使用唤醒函数并将 json 文件写入内部存储,但可能在应用程序启动期间,插件没有使用内部存储检测到 jsonString file_name=context.getFilesDir() + "/"+"stickers.json";
JSON 文件内容
android - 如何连接 Unity 播放器首选项和 Android sharedPreferences?
我在使用 Unity android 的地方使用了本机 android 插件,我想将 json 文件传入和传出 unity 和 Android 插件。
我以前string contents = (File.ReadAllText(Application.persistentDataPath + "/contents.json"));
统一使用从存储在外部存储中的 json 读取INTERNAL STORAGE/Android/data/<packagename>/files/
我也正在从 android 插件中读取 contents.json File file_name=context.getExternalFilesDir("contents.json") ;
,它运行良好。
但是后来我意识到json可以从android设备文件管理器和其他应用程序中看到,因此可以被篡改,所以这种方法根本不安全。
所以我在想我们是否可以使用 Player Prefs 和 shared preferences ,在那里我可以将我的 json 保存为来自 unity 的 player prefs 中的字符串,并且 android 插件可以访问它,反之亦然。我不确定这是否可能,或者还有其他选择吗?我想在运行时完成这一切。
附加信息:我这样做是因为我想在运行时不断更新 json 表单,然后从 android 插件访问这个更新的 json。
android - 如何在whatsapp-sticker pack [Android][Unity-Android plugin]中动态添加贴纸?
我已经使用repo为我的统一游戏制作了一个 android 插件,其中我在每个级别奖励玩家一些贴纸。所以基本上我成功地从android插件调用了添加贴纸功能,并且可以根据所需的标识符和名称添加贴纸包。(这里的 contents.json 已经在 aar 中了。)
但是因为我现在需要编辑 contents.json(我们不能修改 .aar 文件)所以我复制资产文件内容签出内容提供程序代码https://pastebin.com/urhXTs7z
现在 contents.json 在我的Android/data/packagename/files/
在 Unity 中,我反序列化并序列化该 json,然后将项目添加到贴纸包列表中。然后覆盖contents.jsonif (Application.platform == RuntimePlatform.Android)
{
System.IO.File.WriteAllText(Application.persistentDataPath + "/contents.json", contents);
}
它适用于原始contents.json,但更新stickerpack后,ReadContentFile
函数不会读取新项目但这不起作用,插件只是读取原始contents.json。(因为在 OnCreate 中调用了复制资产,所以我尝试使用 android 的 sharepreferences 仅调用一次 copyassets 函数。但后来我的应用程序崩溃了。)
我在这里找到了有类似问题的人:https ://github.com/WhatsApp/stickers/issues/340 但我不知道该怎么做。
我什至不知道当代码在插件中时是否可以动态处理贴纸添加。
请参考 pastebin 链接中的代码
希望对替代方法提出任何建议。
flutter - 使用 flutter_unity_widget 并在我的统一项目中创建一个插件
我想使用 flutter_unity_widget 来嵌入我的统一项目并将其用作应用程序中的插件。
我点击了这个链接:
https://pub.dev/packages/flutter_unity_widget
但它没有编译为:
而flutter_unity_widget android build.gradle中的第39行是依赖项:
脚步:
- 我在根文件夹中添加了统一项目
我在 Unity 中打开它,设置播放器设置并将其导出到 Android。
pubspec.yaml:flutter_unity_widget:^0.1.6+5
根安卓/settings.gradle:
根安卓/UnityExport/build.gradle:
文件 -> 项目结构 -> 模块:添加 unity-classes.jar 作为模块
我正在尝试运行插件,但出现上述错误。
知道有什么问题吗?
unity3d - Unity 的 Google In-App Review 插件错误:java.lang.ClassNotFoundException: com.google.android.play.core.review.ReviewManagerFactory
我正在尝试将 Google 的应用内审查功能集成到我的 Unity 应用程序中,并在 logcat 控制台上收到以下运行时错误消息。有谁知道这个问题的解决方案?
AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.play.core.review.ReviewManagerFactory (Filename: currently not available on il2cpp Line: -1)