当前位置:   article > 正文

Unity Android Plugin 开发教程_unityadsandroidplugin

unityadsandroidplugin

这里写图片描述

开发环境Windows平台(Unity2017.1.0f3 Personal ,Android Studio 2.3.3)

在Unity项目中构建和使用Android Plugin

Unity支持几种类型的Android plug-ins:

这里写图片描述

  1. AAR 插件 和 Android Library
  2. JAR 插件
  3. 继承UnityPlayerActivity
  4. Native(C++) 插件

Unity Android runtime

Untiy Android runtime通过继承自FrameLayoutUnityPlayer实现,UnityPlayer实现了触控,键盘输入,相机,位置等特性。虽然这个UnityPlayer实现了大部分的native功能,但它不是应用程序的入口。

在通用的Android Unity应用程序中,程序的入口是UnityPlayerActivity。如果你看一下APK文件反编译后的AndroidManifest.xml文件,可以看到它是如何标记UnityPlayerActivity作为应用程序的Launcher的。

这里写图片描述

查看Unity安装目录发现,UnityPlayerActivity的源码可以在C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Source中查看。

这里写图片描述

public class UnityPlayerActivity extends Activity
{
   
    protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code

    // Setup activity layout
    @Override protected void onCreate (Bundle savedInstanceState)
    {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);

        getWindow().setFormat(PixelFormat.RGBX_8888); // <--- This makes xperia play happy

        mUnityPlayer = new UnityPlayer(this);
        setContentView(mUnityPlayer);
        mUnityPlayer.requestFocus();
    }

    .........

    // For some reason the multiple keyevent type is not supported by the ndk.
    // Force event injection by overriding dispatchKeyEvent().
    @Override public boolean dispatchKeyEvent(KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
            return mUnityPlayer.injectEvent(event);
        return super.dispatchKeyEvent(event);
    }

   .........
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

可以看到UnityPlayerActivity继承自Activity,并且UnityPlayerActivity持有一个UnityPlayer实例。UnityPlayerActivity通过UnityPlayer分派native 事件。
这里写图片描述

通用的Android插件开发,通过继承UnityPlayerActivity,并使子类成为整个应用程序的LAUNCHER Activity,接下来将介绍继承UnityPlayerActivity方式的Android Plugin

继承UnityPlayerActivity方式的Android Plugin

这里写图片描述

Android Plugin需要包含Android项目中build后得到的app-debug.aarManifest.xml以及资源文件等,提供给Unity项目使用。文件存放在Unity项目中的/Assets/Plugins/Android。Unity项目中的代码通过app-debug.aar与封装在其中的Android代码进行交互。For more details about .aar, see Android Developer Doc. And for more information about “How Unity produces the Android Manifest”, see Unity Developer Doc

这里写图片描述

这里写图片描述

那么,接下来新建Android项目,进而生成app-debug.aar文件和

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/119143
推荐阅读
相关标签
  

闽ICP备14008679号