0

iphone4/3G/3GSを実行しているときに、Unityに組み込まれているeveryplayを無効にしたい

しかし、グローバルに無効にする最も簡単な場所はわかりません。助言がありますか?

if (iPhone.generation == iPhoneGeneration.iPhone4  || iPhone.generation == iPhoneGeneration.iPhone3G || iPhone.generation == iPhoneGeneration.iPhone3GS )
4

1 に答える 1

2

Everyplay.SharedInstance.SetDisableSingleCoreDevices(true)ゲームの最初のシーンで呼び出すことにより、シングル コア デバイス (3GS/4/iPad1) を簡単に無効にすることができます。StartRecordingEveryplay は呼び出しを無視するので、シングル コア デバイスで呼び出す場合は心配する必要はありません。3G (および Unity エディター) は、そもそもレコーディングをサポートしていません。

iPad 1 での録音をサポートする必要がある場合の 1 つの方法は、サポート対象外として定義したデバイスで録音関数を呼び出さない Everyplay シングルトン ラッパーを作成することです。

簡単なラッパーの例 (テストされていませんが、アイデアが得られます):

using UnityEngine;

public static class MyEveryplayWrapper {
    private static iPhoneGeneration[] unsupportedDevices = {
        iPhoneGeneration.iPad1Gen,
        iPhoneGeneration.iPhone,
        iPhoneGeneration.iPhone3G,
        iPhoneGeneration.iPhone3GS,
        iPhoneGeneration.iPodTouch1Gen,
        iPhoneGeneration.iPodTouch2Gen,
        iPhoneGeneration.iPodTouch3Gen
    };

    private static bool CheckIfRecordingSupported() {
        bool recordingSupported = !Application.isEditor;

        foreach(iPhoneGeneration device in unsupportedDevices) {
            if(device == iPhone.generation) {
                recordingSupported = false;
                break;
            }
        }

        Debug.Log ("Everyplay recording support: " + recordingSupported);

        return recordingSupported;
    }

    public static bool IsRecordingSupported = CheckIfRecordingSupported();

    public static void StartRecording() {
        if(IsRecordingSupported) {
            Everyplay.SharedInstance.StartRecording();
        }
    }

    public static void StopRecording() {
        if(IsRecordingSupported) {
            Everyplay.SharedInstance.StopRecording();
        }
    }
}

MyEveryplayWrapper.MethodNameそれを使用するには、代わりに呼び出すだけですEveryplay.SharedInstance.MethodName。UI をレンダリングするときに、IsRecordingSupportedEverplay 関連のボタンなどの表示/非表示を考慮することができます。

于 2013-05-30T11:05:11.583 に答える