いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity : iOS 10.3以上でレビューダイアログを表示するプラグインを作る

iOS10.3からレビュー依頼の方法が変わり、アプリ内で星を評価するダイアログが標準で用意されました。
なんでも、このダイアログを使わないレビュー依頼は リジェクト対象になる とか。

ということでUnityで作ったゲームでもこの機能を使いましょう。

UnityプロジェクトにObjective-cのソースを追加

Swift? ノーノー。めんどくさいこと私キライ。
今回の目的にはObjective-Cが一番簡単でヨロシイね。

下記のファイルをUnityプロジェクトの Assets/Plugins/iOS フォルダの下に配置します。

ReviewDialog.mm

#import <StoreKit/StoreKit.h>

extern "C" {

    void ShowReviewDialog ()
    {
    // レビューダイアログ呼び出し
        [SKStoreReviewController requestReview];
    }
    
}

これが iOSプラグイン としてプロジェクトに組み込まれます。

呼び出すほうは下記のようにスクリプトを書きましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class TestScript : MonoBehaviour {

    [DllImport ("__Internal")]
    private static extern float ShowReviewDialog();

    void Update () {
       #if UNITY_IOS
        if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began) {

            // プラグイン呼び出し
            ShowReviewDialog();
    
        }
       #endif
    }
}

上のスクリプトのうち、プラグイン呼び出しの準備として必要なのは下記二つの部分。

using System.Runtime.InteropServices;
[DllImport ("__Internal")]
private static extern float ShowReviewDialog();

Xcodeに書き出す

こちらの記事を参考に、iOS用のビルドを作ります。

indie-du.com

Xcodeを開いたら、下の画像を参考にして StoreKitフレームワーク を追加してください。

f:id:sugar_affordance:20170923172801j:plain

実行する

うまくいけばダイアログが出ます。

参考 iOS 用のプラグインをビルド - Unity マニュアル

TextMeshPro でアウトラインの太さが思い通りにいかない場合

TextMeshProでテキストのアウトラインの太さを思ったとおりにするには、フォントアセット作成の時点から気をつける必要があります。

それは Font Asset CreatorFont Padding 設定です。
まず、フォントアセット作成時の、次の二つの画像を見比べてみてください。

上の画像はパディングを 5 で作成し、下の画像は 1 で作成しています。

パディングが大きいほうが、フォントテクスチャがボヤけているのがわかりますが、これが一つの目安です。

これらのアセットを使って、それぞれアウトライン設定を最大にしたのが以下の画像。

パディング 5 のほうが、明らかにアウトラインが太くなっています。

ということで、太いアウトライン設定したい場合は Font Padding の値を大きくしてテクスチャを作成しましょう。


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。