const string JSON_PREF = "_json";   //For save JSON parameters

    //Call Android Custom Dialog
    //http://fantom1x.blog130.fc2.com/blog-entry-282.html#fantomPlugin_CustomDialogItems
    public void OpenDialog()
    {
        if (toggleJson != null && toggleJson.isOn)  //JSON format
        {
#if UNITY_ANDROID
            Data data = new Data();
            XPlayerPrefs.GetObjectOverwrite(gameObject.name + JSON_PREF, ref data); //Default value when there is no saved data.

            //(*) Activate the "DebugConsole" in the hierarchy to see its parameters.
            XDebug.Clear();
            XDebug.Log("(PlayerPrefs or init)");
            XDebug.Log(data, 3);

            DivisorItem divisorItem = new DivisorItem(1);
            TextItem    textItem    = new TextItem("You can make various settings.");
            TextItem    textItem1   = new TextItem("Switch the Party Character");

            SwitchItem switchItem  = new SwitchItem("UnityChan", "utc", data.utc);
            SwitchItem switchItem2 = new SwitchItem("PronamaChan", "pronama", data.pronama);
            SwitchItem switchItem3 = new SwitchItem("QueryChan", "query", data.query);

            TextItem textItem2 = new TextItem("Select a Servant");

            ToggleItem toggleItem = new ToggleItem(
                new String[] { "Saber", "Rancer", "Caster" },
                "servant",
                new String[] { "saber", "rancer", "caster" },
                data.servant);

            TextItem textItem3 = new TextItem("Sound Setting");

            Dictionary <string, int> vols;
            if (volumeController != null)
            {
                vols = volumeController.GetVolumes();
            }
            else
            {
                vols = new Dictionary <string, int>()
                {
                    { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 }
                }
            };

            SliderItem sliderItem  = new SliderItem("Master", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem1 = new SliderItem("Music", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem2 = new SliderItem("Voice", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem3 = new SliderItem("Effect", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume");

            TextItem   textItem4   = new TextItem("All saved settings will be deleted when Reset.", Color.red);
            SwitchItem switchItem4 = new SwitchItem("Reset Setting", "reset", false, Color.blue);

            DialogItem[] items = new DialogItem[] {
                textItem, divisorItem,
                textItem1, switchItem, switchItem2, switchItem3, divisorItem,
                textItem2, toggleItem, divisorItem,
                textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem,
                switchItem4, textItem4, divisorItem,
            };
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            AndroidPlugin.ShowCustomDialog("This is Custom Dialog Demo", "", items, gameObject.name, "OnReceiveResult", true, "Apply", "Cancel");
#endif
        }
        else  //"key=value" format
        {
#if UNITY_ANDROID
            //'Param' class is basically the same as Dictionary prepared for easy handling of value type conversion and default value.
            Param pref = Param.GetPlayerPrefs(gameObject.name, new Param());  //When there is no saved data, it is newly generated (elements are empty).

            //(*) Activate the "DebugConsole" in the hierarchy to see its parameters.
            XDebug.Clear();
            XDebug.Log("(PlayerPrefs or init)");
            XDebug.Log(pref, 3);

            DivisorItem divisorItem = new DivisorItem(1);
            TextItem    textItem    = new TextItem("You can make various settings.");
            TextItem    textItem1   = new TextItem("Switch the Party Character", AndroidColor.WHITE, XColor.ToIntARGB("#ff1493"), "center"); //(*) All color formats are the same (only trying on various tests)

            SwitchItem switchItem  = new SwitchItem("UnityChan", "utc", pref.GetBool("utc", false));
            SwitchItem switchItem2 = new SwitchItem("PronamaChan", "pronama", pref.GetBool("pronama", false));
            SwitchItem switchItem3 = new SwitchItem("QueryChan", "query", pref.GetBool("query", false));

            TextItem textItem2 = new TextItem("Select a Servant", XColor.ToColor("#fff"), XColor.ToColor("0x1e90ff"), "center");  //(*) All color formats are the same (only trying on various tests)

            ToggleItem toggleItem = new ToggleItem(
                new String[] { "Saber", "Rancer", "Caster" },
                "servant",
                new String[] { "saber", "rancer", "caster" },
                pref.GetString("servant", "saber"));

            TextItem textItem3 = new TextItem("Sound Setting", XColor.ToIntARGB(Color.white), XColor.ToIntARGB(0x3c, 0xb3, 0x71), "center");//"#3cb371" (*) All color formats are the same (only trying on various tests)

            Dictionary <string, int> vols;
            if (volumeController != null)
            {
                vols = volumeController.GetVolumes();
            }
            else
            {
                vols = new Dictionary <string, int>()
                {
                    { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 }
                }
            };

            SliderItem sliderItem  = new SliderItem("Master", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem1 = new SliderItem("Music", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem2 = new SliderItem("Voice", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem3 = new SliderItem("Effect", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume");

            TextItem   textItem4   = new TextItem("All saved settings will be deleted when Reset.", Color.red);
            SwitchItem switchItem4 = new SwitchItem("Reset Setting", "reset", false, Color.blue);

            DialogItem[] items = new DialogItem[] {
                textItem, divisorItem,
                textItem1, switchItem, switchItem2, switchItem3, divisorItem,
                textItem2, toggleItem, divisorItem,
                textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem,
                switchItem4, textItem4, divisorItem,
            };
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            AndroidPlugin.ShowCustomDialog("This is Custom Dialog Demo", "", items, gameObject.name, "OnReceiveResult", false, "Apply", "Cancel");
#endif
        }
    }
示例#2
0
    const string JSON_PREF = "_json";   //JSON とは保存データを分ける


    public void OpenDialog()
    {
        if (toggleJson != null && toggleJson.isOn)  //JSON 形式
        {
#if UNITY_ANDROID
            Data data = new Data();
            XPlayerPrefs.GetObjectOverwrite(gameObject.name + JSON_PREF, ref data); //保存されたデータがないときはデフォ値となる

            XDebug.Clear();                                                         //※ヒエラルキーにある「DebugConsole」をオンにすると内容が見れます。
            XDebug.Log("(PlayerPrefs or init)");
            XDebug.Log(data, 3);

            DivisorItem divisorItem = new DivisorItem(1);
            TextItem    textItem    = new TextItem("あんなことやこんなことを設定できます。");
            TextItem    textItem1   = new TextItem("嫁のブレンド・S");

            SwitchItem switchItem  = new SwitchItem("ユニティちゃん", "utc", data.utc);
            SwitchItem switchItem2 = new SwitchItem("プロ生ちゃん", "pronama", data.pronama);
            SwitchItem switchItem3 = new SwitchItem("クエリちゃん", "query", data.query);

            TextItem textItem2 = new TextItem("あなたの属性");

            ToggleItem toggleItem = new ToggleItem(
                new String[] { "ツンデレ", "ヤンデレ", "しょびっち" },
                "zokusei",
                new String[] { "tsundere", "yandere", "syobicchi" },
                data.zokusei);

            TextItem textItem3 = new TextItem("サウンド設定");

            Dictionary <string, int> vols;
            if (volumeController != null)
            {
                vols = volumeController.GetVolumes();
            }
            else
            {
                vols = new Dictionary <string, int>()
                {
                    { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 }
                }
            };

            SliderItem sliderItem  = new SliderItem("マスター", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem1 = new SliderItem("音楽", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem2 = new SliderItem("ボイス", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem3 = new SliderItem("効果音", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume");

            TextItem   textItem4   = new TextItem("リセットすると保存された設定が全て消去されます", Color.red);
            SwitchItem switchItem4 = new SwitchItem("設定のリセット", "reset", false, Color.blue);

            DialogItem[] items = new DialogItem[] {
                textItem, divisorItem,
                textItem1, switchItem, switchItem2, switchItem3, divisorItem,
                textItem2, toggleItem, divisorItem,
                textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem,
                switchItem4, textItem4, divisorItem,
            };
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            AndroidPlugin.ShowCustomDialog("設定いろいろ", "", items, gameObject.name, "OnReceiveResult", true, "決定", "キャンセル");
#endif
        }
        else  //キーと値ペアの形式
        {
#if UNITY_ANDROID
            //Param は基本的に Dictionary と同じもので、値の型変換とデフォルト値を簡単に扱うために用意したラッパー的なクラスと考えて良い
            Param pref = Param.GetPlayerPrefs(gameObject.name, new Param()); //保存されたデータがないときは新規に生成(中身は空)

            XDebug.Clear();                                                  //※ヒエラルキーにある「DebugConsole」をオンにすると内容が見れます。
            XDebug.Log("(PlayerPrefs or init)");
            XDebug.Log(pref, 3);

            DivisorItem divisorItem = new DivisorItem(1);
            TextItem    textItem    = new TextItem("あんなことやこんなことを設定できます。");
            TextItem    textItem1   = new TextItem("嫁のブレンド・S", AndroidColor.WHITE, XColor.ToIntARGB("#ff1493"), "center"); //※色の形式はどれでも同じです(テストで色々試してるだけ)

            SwitchItem switchItem  = new SwitchItem("ユニティちゃん", "utc", pref.GetBool("utc", false));
            SwitchItem switchItem2 = new SwitchItem("プロ生ちゃん", "pronama", pref.GetBool("pronama", false));
            SwitchItem switchItem3 = new SwitchItem("クエリちゃん", "query", pref.GetBool("query", false));

            TextItem textItem2 = new TextItem("あなたの属性", XColor.ToColor("#fff"), XColor.ToColor("0x1e90ff"), "center");  //※色の形式はどれでも同じです(テストで色々試してるだけ)

            ToggleItem toggleItem = new ToggleItem(
                new String[] { "ツンデレ", "ヤンデレ", "しょびっち" },
                "zokusei",
                new String[] { "tsundere", "yandere", "syobicchi" },
                pref.GetString("zokusei", "tsundere"));

            TextItem textItem3 = new TextItem("サウンド設定", XColor.ToIntARGB(Color.white), XColor.ToIntARGB(0x3c, 0xb3, 0x71), "center");//"#3cb371" ※色の形式はどれでも同じです(テストで色々試してるだけ)

            Dictionary <string, int> vols;
            if (volumeController != null)
            {
                vols = volumeController.GetVolumes();
            }
            else
            {
                vols = new Dictionary <string, int>()
                {
                    { "master", 100 }, { "bgm", 50 }, { "voice", 50 }, { "se", 50 }
                }
            };

            SliderItem sliderItem  = new SliderItem("マスター", "master", vols["master"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem1 = new SliderItem("音楽", "bgm", vols["bgm"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem2 = new SliderItem("ボイス", "voice", vols["voice"], 0, 100, 0, 0, "PreviewVolume");
            SliderItem sliderItem3 = new SliderItem("効果音", "se", vols["se"], 0, 100, 0, 0, "PreviewVolume");

            TextItem   textItem4   = new TextItem("リセットすると保存された設定が全て消去されます", Color.red);
            SwitchItem switchItem4 = new SwitchItem("設定のリセット", "reset", false, Color.blue);

            DialogItem[] items = new DialogItem[] {
                textItem, divisorItem,
                textItem1, switchItem, switchItem2, switchItem3, divisorItem,
                textItem2, toggleItem, divisorItem,
                textItem3, sliderItem, sliderItem1, sliderItem2, sliderItem3, divisorItem,
                switchItem4, textItem4, divisorItem,
            };
#endif
#if UNITY_ANDROID && !UNITY_EDITOR
            AndroidPlugin.ShowCustomDialog("設定いろいろ", "", items, gameObject.name, "OnReceiveResult", false, "決定", "キャンセル");
#endif
        }
    }