我来自Unity3D开发的世界,我是Android开发的新手。我正在尝试为Unity Android创建一个NFC插件。我按照Twinsprite提供的this guide关于如何通过扩展UnityPlayerActivity
来创建插件。使用Twinsrpite的代码,该插件支持Android的NFC前景调度系统,以便在我的应用程序位于前台时捕获NFC意图。
在我的研究中,我发现扩展UnityPlayerActivity
是不受欢迎的,因为它可能会导致Unity项目中其他插件的依赖性出现很多问题。从那里我决定我的插件扩展Fragment
类,就像许多其他Unity Android插件一样。这样,我的无头Fragment
插件可以利用片段生命周期的回调,而不会在Unity中引起问题。
虽然我在修改代码以处理Fragment
时遇到了问题。 Twinsprite的代码依赖于Activity
的{{1}}回调,然后将onNewIntent
数据传递到解析NFC消息的处理程序方法中。由于我编写代码以使用Intent
而不是Fragment
,因此我无法再访问Activity
回调,因此无法调用处理程序方法了。如上所述,我希望不要延长onNewIntent
,因此我还是留下了这个问题:
如何在UnityPlayerActivity
插件中从我的NFC Intent
接收数据而不延长Fragment
?
答案 0 :(得分:0)
只需向Fragment添加一个方法,该方法可以将活动传递给新的Intent。然后片段可以根据需要处理意图。
MyUnityFragment myUnityFragment;
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
myUnityFragment.newIntent(intent);
}
答案 1 :(得分:0)
我决定在不使用UnityPlayerActivity
类的情况下继续扩展Fragment
。 Fragment
扩展插件的目的是避免更改AndroidManifest.xml,因为我担心它会导致其他插件出现问题,例如分析,Facebook等。Intent
必须由Activity
处理,所以我试图做的事情是不可能的。