Unity MM

来源:互联网 发布:mac卸载paragon ntfs 编辑:程序博客网 时间:2024/05/22 17:27

弱联网

  • unity请用这个
  • MMSDK_1.2.1
  • jar加压把assets放到unity对应文件夹(因为unity不会把这里面的assets打到包里)
  • libs下的内容拷贝

非弱联网

  • 拷贝libs下目录到对应文件夹
  • mmbilling.2.3.0.jar解压把assets放到unity对应文件夹(因为unity不会把这里面的assets打到包里)
  • 修改Manifest
     <!-- MM -->  <service            android:name="mm.purchasesdk.iapservice.PurchaseService"            android:exported="true" >            <!-- android:process="mm.iapServices" > -->            <intent-filter android:priority="230" >                <action android:name="com.aspire.purchaseservice.BIND" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>            <intent-filter android:priority="230" >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.SAFIAP.COMPONENT" >                </category>            </intent-filter>        </service>        <!-- android:excludeFromRecents="true" -->        <!-- android:launchMode="singleInstance" -->        <activity            android:name="mm.purchasesdk.iapservice.BillingLayoutActivity"            android:configChanges="orientation|keyboardHidden"            android:theme="@android:style/Theme.Translucent" >            <intent-filter android:priority="230" >                <action android:name="com.herocraft.game.zombiederby.com.mmiap.activity" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>        <!-- android:process="safiap.framework.safframeworkmanager" begin -->        <service            android:name="safiap.framework.SafFrameworkManager"            android:exported="true"            android:process="safiap.framework" >            <intent-filter android:priority="600" >                <!-- ID for services declared in AIDL -->                <action android:name="safiap.framework.sdk.ISAFFramework" />            </intent-filter>            <intent-filter android:priority="600" >                <!-- ID for services declared in AIDL -->                <action android:name="safiap.framework.ACTION_START_DOWNLOAD" />            </intent-filter>            <intent-filter android:priority="600" >                <!-- ID for services declared in AIDL -->                <action android:name="safiap.framework.ACTION_CHECK_UPDATE" />            </intent-filter>        </service>        <!-- receivers -->        <receiver android:name="safiap.framework.CheckUpdateReceiver" >            <intent-filter>                <action android:name="safiap.framework.ACTION_CANCEL_NOTIFICATION" />            </intent-filter>            <intent-filter>                <action android:name="safiap.GET_SHARED_DATA" />            </intent-filter>            <intent-filter>                <action android:name="safiap.framework.ACTION_SET_TIMER" />            </intent-filter>        </receiver>        <activity            android:name="safiap.framework.ui.UpdateHintActivity"            android:configChanges="orientation"            android:excludeFromRecents="true"            android:launchMode="singleInstance"            android:theme="@android:style/Theme.Translucent.NoTitleBar" >            <intent-filter>                <action android:name="safiap.framework.ACTION_TO_INSTALL" />            </intent-filter>            <intent-filter>                <action android:name="safiap.framework.ACTION_TO_INSTALL_IAP" />            </intent-filter>            <intent-filter>                <action android:name="safiap.framework.ACTION_NETWORK_ERROR_IAP" />            </intent-filter>            <intent-filter>                <action android:name="safiap.framework.ACTION_NETWORK_ERROR_FRAMEWORK" />            </intent-filter>        </activity>        <service            android:name="safiap.framework.logreport.monitor.handler.LogreportHandler"            android:process=":remote" />        <!-- android:process="safiap.framework.safframeworkmanager" end -->
  • 注意上面的BillingLayoutActivity部分的action android:name,要换成你的包名+.com.mmiap.activity

Implement

  • 将splash.jar,mmsmsbilling1.2.0.jar拷贝到Plugins/Android/libs
  • mmiap拷贝到 Plugins/Android/assets
  • CmBillingAndroid.cs GameStart.cs HelpAboutAndroid.cs CmBillingResult.cs拷贝到Plugins/Android
  • res/layout 下面的文件拷贝到 Plugins/Android/res/layout
  • res/valuse 下面的文件拷贝到 Plugins/Android/res/values
  • res/drawable drawable-hdpi 下面的文件拷贝到对应目录
  • 修改CmBillingAndroid.cs,打开 private AndroidJavaClass klass = new AndroidJavaClass(“com.yx.mm.MMUnity”);
  • manifest修改,增加MM receiver和 MM的permission
    <?xml version="1.0" encoding="utf-8"?><manifest    xmlns:android="http://schemas.android.com/apk/res/android"    package="com.unity3d.player"android:installLocation="preferExternal"    android:versionCode="900"    android:versionName="0.9.0">    <supports-screens        android:smallScreens="true"        android:normalScreens="true"        android:largeScreens="true"        android:xlargeScreens="true"        android:anyDensity="true"/>    <applicationandroid:icon="@drawable/app_icon"        android:label="@string/app_name"        android:debuggable="true"><!-- CT --> <activity android:name="com.yx.Splash"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:screenOrientation="sensor"> <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> </activity>        <activity android:name="com.yx.MyUnityPlayerProxyActivity"                  android:label="@string/app_name"                  android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"><!-- MM                 <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter> -->        </activity>        <activity android:name="com.yx.MyUnityPlayerActivity"                  android:label="@string/app_name"                  android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">        </activity>        <activity android:name="com.yx.MyUnityPlayerNativeActivity"                  android:label="@string/app_name"                  android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">            <meta-data android:name="android.app.lib_name" android:value="unity" />            <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />        </activity><!-- MM     <receiver            android:name="mm.sms.purchasesdk.sms.SMSReceiver"            android:exported="false" >            <intent-filter>                <action android:name="aspire.iap.SMS_SEND_ACTIOIN" />                <action android:name="aspire.iap.SMS_DELIVERED_ACTION" />            </intent-filter>        </receiver>--> </application><!-- AndroidManifest.xml.permision.txt --><!-- CT --><uses-permission android:name="android.permission.SEND_SMS" /><uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- MM       <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.SEND_SMS" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />--></manifest> 

CmBillingResult.cs

  • 修改 计费成功之后的处理if (CmBillingAndroid.BillingResult.SUCCESS == results [1]) {
  • CmBillingResult.Billing(“018”);

GameStart.cs

  • 在游戏最开始的scene,里面的maincamera下面挂载(Add Component)这个脚本

修改计费配置文件

  • res/valuse/g_strings.xml
  • 找到MM计费点, 修改mmAPPID , mmAPPKEY, mm_item_cnt
  • 对每个计费点开始配置, 第一个计费点是mm_item_1_xxx
  • 配置id,就是计费点id
  • 配置name, 计费点名称
  • des,计费点描述
  • img,图片(图片放到assets目录下,如果不配置,默认会找 assets/yx_index.png)
  • real,当前计费点只是展示,真正会调用real计费点
0 0