예제 #1
0
        public SoundSettingsScreen(Game i_Game) : base(i_Game, 150f, 15f)
        {
            int index = 0;

            this.m_Background          = new Background(this, @"Sprites\BG_Space01_1024x768", 1);
            this.m_MenuHeader          = new MenuHeader(this, @"Screens\Settings\SoundSettingsLogo");
            this.m_SoundSettingManager = i_Game.Services.GetService(typeof(ISoundSettingsManager)) as ISoundSettingsManager;

            ToggleItem toggleGameSound    = new ToggleItem(@"Screens\Settings\ToggleSound", @"Screens\Settings\OnOff_53x52", this, index++);
            VolumeItem bgMusicVolume      = new VolumeItem(@"Screens\Settings\BgMusic", this, index++);
            VolumeItem soundEffectsVolume = new VolumeItem(@"Screens\Settings\SoundEffects", this, index++);
            ClickItem  doneItem           = new ClickItem("Done", @"Screens\Settings\Done", this, index++);

            toggleGameSound.ToggleValueChanched            += new EventHandler <EventArgs>(this.m_SoundSettingManager.ToggleGameSound_Click);
            bgMusicVolume.IncreaseVolumeButtonClicked      += new EventHandler <EventArgs>(this.m_SoundSettingManager.IncreaseBackgroundMusic_Click);
            bgMusicVolume.DecreaseVolumeButtonClicked      += new EventHandler <EventArgs>(this.m_SoundSettingManager.DecreaseBackgroundMusic_Click);
            soundEffectsVolume.IncreaseVolumeButtonClicked += new EventHandler <EventArgs>(this.m_SoundSettingManager.IncreaseSoundEffects_Click);
            soundEffectsVolume.DecreaseVolumeButtonClicked += new EventHandler <EventArgs>(this.m_SoundSettingManager.DecreaseSoundEffects_Click);

            doneItem.ItemClicked += this.menuItem_Click;

            this.AddMenuItem(toggleGameSound);
            this.AddMenuItem(bgMusicVolume);
            this.AddMenuItem(soundEffectsVolume);
            this.AddMenuItem(doneItem);
        }
예제 #2
0
        public SplitPaymentVM(OrderVM order, PaymentSection section, Payment parent)
        {
            _order          = order;
            _prevsection    = section;
            _parent         = parent;
            _remainedAmount = order.AllTotal;

            _paymentType = SplitPaymentType.Card;

            //default 3 split
            var split = SelectableSplits[1];

            split.IsSelected = true;
            _selectedSplit   = split;

            //default evenly split
            var splittype = SelectableSplitTypes[0];

            splittype.IsSelected = true;
            _selectedSplitType   = splittype;



            PrepareReceipts(order.AllTotal, (int)SelectedSplit.Value, (SplitType)SelectedSplitType.Value);
        }
    public void ToggleClick_Result()
    {
        // Debug.Log("토글버튼 클릭됨");

        GameObject obj        = EventSystem.current.currentSelectedGameObject;
        ToggleItem toggleItem = obj.GetComponent <ToggleItem>();

        // 클릭된 이름의 효과음 재생하여 사용자가 어떤 소리인지 알수있게해줌
        // 재생할 파일명은 PlayerInformation의 SoundFileNameList임.

        if (toggleItem.item.isOn)
        {
            AudioSource audioSource = GetComponent <AudioSource>();
            // 리소스에서 오디오 파일을 불러온다.
            AudioClip audioClip = Resources.Load <AudioClip>("EffectSounds/" + toggleItem.soundFileName.text);
            audioSource.clip = audioClip;
            if (drumType == 0)
            {
                // 선택된 소리를 기본 소리로 셋팅한다
                PlayerInformation.leftDrumSound = audioClip;
            }
            else
            {
                // 선택된 소리를 기본 소리로 셋팅한다
                PlayerInformation.rightDrumSound = audioClip;
            }
            // 재생
            audioSource.Play();
        }
    }
예제 #4
0
        public override HostedLayoutItemViewModel Clone()
        {
            var oldContent = ModelAs <ToggleItem>();

            var newContent = new ToggleItem()
            {
                Height               = oldContent.Height,
                Name                 = oldContent.Name,
                Shape                = oldContent.Shape.ToList(),
                Width                = oldContent.Width,
                X                    = oldContent.X,
                Y                    = oldContent.Y,
                Action               = oldContent.Action,
                ContentAreaTarget    = null,
                HighlightColor       = oldContent.HighlightColor,
                IsNonStandardHitArea = oldContent.IsNonStandardHitArea,
                ItemTarget           = oldContent.ItemTarget,
                PageTarget           = oldContent.PageTarget,
                DefaultState         = oldContent.DefaultState,
                DisabledState        = oldContent.DisabledState,
                NormalState          = oldContent.NormalState,
                PressedState         = oldContent.PressedState,
                SelectedState        = oldContent.SelectedState,
                ToggleGroup          = oldContent.ToggleGroup
            };

            var newVm = new ToggleItemViewModel(newContent);

            return(newVm);
        }
예제 #5
0
    private void CreateItem(config_item_base itemInfo, FightLayerType type, int rotate = 0)
    {
        GameObject item = list.NewItem();

        item.name = "item_" + itemInfo.id;

        ToggleItem toggleItem = item.GetComponent <ToggleItem>();

        toggleItem.itemInfo = itemInfo;

        toggleItem.type = type;

        toggleItem.id      = itemInfo.id;
        toggleItem.icon    = itemInfo.icon;
        toggleItem.zrotate = rotate * FightConst.ROTATE_BASE;
        if (toggleItem.type == FightLayerType.map)
        {
            toggleItem.toggle.group = list.GetComponent <ToggleGroup>();
        }
        else
        {
            toggleItem.toggle.group = transform.parent.GetComponent <ToggleGroup>();
        }
        toggleItem.toggle.onValueChanged.AddListener(toggleItem.OnSelectChange);
    }
예제 #6
0
        public MainMenuScreen(Game i_Game) : base(i_Game)
        {
            this.IsUsingKeyboard      = true;
            this.m_Background         = new Background(this, @"Sprites\BG_Space01_1024x768", 1);
            this.m_MenuHeader         = new MenuHeader(this, @"Screens\MainMenu\MainMenuLogo");
            this.m_MenuHeader.OffsetX = 20;

            int        index       = 0;
            ToggleItem playersItem = new ToggleItem(@"Screens\MainMenu\PlayersWhite", @"Screens\MainMenu\PlayersOptions_70x50", this, index++);

            playersItem.ToggleValueChanched += new EventHandler <EventArgs>(this.numOfPlayers_Changed);
            this.AddMenuItem(playersItem);

            ClickItem SettingsScreenItem = new ClickItem("ScreenSettingsScreen", @"Screens\MainMenu\ScreenSettings", this, index++);
            ClickItem SoundSettingsItem  = new ClickItem("SoundSettingsScreen", @"Screens\MainMenu\SoundSettings", this, index++);
            ClickItem playItem           = new ClickItem("PlayScreen", @"Screens\MainMenu\PlayGameWhite", this, index++);
            ClickItem QuitItem           = new ClickItem("Quit", @"Screens\Wellcome\QuitGame", this, index++);

            SettingsScreenItem.ItemClicked += new EventHandler <ScreenEventArgs>(this.menuItem_Click);
            SoundSettingsItem.ItemClicked  += new EventHandler <ScreenEventArgs>(this.menuItem_Click);
            playItem.ItemClicked           += new EventHandler <ScreenEventArgs>(this.menuItem_Click);
            QuitItem.ItemClicked           += new EventHandler <ScreenEventArgs>(this.buttonQuit_click);

            this.AddMenuItem(SettingsScreenItem);
            this.AddMenuItem(SoundSettingsItem);
            this.AddMenuItem(playItem);
            this.AddMenuItem(QuitItem);
        }
    public void DynamicCustom()
    {
        DivisorItem divisorItem = new DivisorItem(1);
        TextItem    textItem    = new TextItem("Dynamic Test!", Color.blue);
        SwitchItem  switchItem1 = new SwitchItem("Switch item1", "switch1", true);
        SwitchItem  switchItem2 = new SwitchItem("Switch item2", "switch2", false);
        SliderItem  sliderItem1 = new SliderItem("Slider item1", "slider1", 50, 0, 100, 0, 0, "");
        SliderItem  sliderItem2 = new SliderItem("Slider item2", "slider2", 0.5f, 0, 1, 2, 0, "");
        ToggleItem  toggleItem  = new ToggleItem(
            new String[] { "Toggle1", "Toggle2" },
            "toggles",
            new String[] { "toggle value1", "toggle value2" },
            "value2");

        DialogItem[] items = new DialogItem[] {
            divisorItem, textItem, switchItem1, switchItem2, sliderItem1, sliderItem2, toggleItem
        };

        if (customControl != null)
        {
            customControl.SetItem(items);
            customControl.Show();
            XDebug.Log("CurrentValue : " + customControl.CurrentValue.Select(e => e.Key + "=" + e.Value).Aggregate((s, a) => s + ", " + a));
        }
    }
예제 #8
0
        public bool StartGame()
        {
            //sets player choices for xbox
            //windows will always defalut to 1
            ToggleItem playerToggle = (ToggleItem)submenus[1].items[1];
            ToggleItem LengthToggle = (ToggleItem)submenus[1].items[2];
            ToggleItem DiffToggle   = (ToggleItem)submenus[1].items[3];

            GameLayer temp = new GameLayer(playerToggle.current + 1, LengthToggle.current + 1, DiffToggle.current + 1);

            Globals.screenManager.Push(new IntroStory(temp));

            return(true);
        }
예제 #9
0
        public void TestToggle()
        {
            var toggleObj  = new ToggleItem();
            var numSquares = 0;
            var numListPtr = new int[1];

            Assert.AreEqual(-1, toggleObj.GetNumSquares());

            toggleObj.SetNumSquares(3);
            Assert.AreEqual(3, toggleObj.GetNumSquares());

            toggleObj = new ToggleItem();
            toggleObj.GetList(ref numSquares, ref numListPtr);
            Assert.AreEqual(-1, numSquares);
        }
예제 #10
0
        private static void RunToggleTest(int P_idx)
        {
            var expectedTogglePattern = new int[Grid.MaxSquares];
            int cnt, toggleTotalCnt = 0;
            var afterToggledPattern = new int[Grid.MaxSquares];
            var toggleItemPtr       = new int[1];
            var gridObj = new Grid();

            gridObj.InitGrid();
            gridObj.RandomizeStartingGrid();
            Square[] currGridPtr = gridObj.GetGrid();
            for (cnt = 0; cnt < Grid.MaxSquares; cnt++)
            {
                expectedTogglePattern[cnt] = currGridPtr[cnt].GetState();
            }

            //
            //  We will toggle the changed suqares so that the
            //      comparision will be easy.
            //

            ToggleItem toggleListPtr = gridObj.GetToggleList(P_idx);

            toggleListPtr.GetList(ref toggleTotalCnt, ref toggleItemPtr);
            for (cnt = 0; cnt < toggleTotalCnt; cnt++)
            {
                int currIdx = toggleItemPtr[cnt];
                expectedTogglePattern[currIdx] ^= 1;
            }

            gridObj.ToggleGrid(P_idx);

            currGridPtr = gridObj.GetGrid();
            for (cnt = 0; cnt < Grid.MaxSquares; cnt++)
            {
                afterToggledPattern[cnt] = currGridPtr[cnt].GetState();
            }

            for (cnt = 0; cnt < Grid.MaxSquares; cnt++)
            {
                Assert.AreEqual(afterToggledPattern[cnt], expectedTogglePattern[cnt]);
            }
        }
예제 #11
0
        public void TestToggleSetList()
        {
            int numSquares = 0, cnt;
            var numListPtr = new int[1];

            int[] testList  = { 1, 2, 3 };
            var   toggleObj = new ToggleItem();

            toggleObj.SetList(0, ref numListPtr);
            toggleObj.GetList(ref numSquares, ref numListPtr);
            Assert.AreEqual(0, numSquares);

            toggleObj.SetList(3, ref testList);
            toggleObj.GetList(ref numSquares, ref numListPtr);
            Assert.AreEqual(3, numSquares);

            for (cnt = 0; cnt < 3; cnt++)
            {
                Assert.AreEqual(numListPtr[cnt], testList[cnt]);
            }
        }
예제 #12
0
        public ScreenSettingsScreen(Game i_Game) : base(i_Game, 150f, 15f)
        {
            int index = 0;

            this.m_Background       = new Background(this, @"Sprites\BG_Space01_1024x768", 1);
            this.m_MenuHeader       = new MenuHeader(this, @"Screens\Settings\ScreenSettingsLogo");
            this.m_ScreenSettingMng = i_Game.Services.GetService(typeof(IScreenSettingsManager)) as IScreenSettingsManager;

            ToggleItem mouseVisability = new ToggleItem(@"Screens\Settings\MouseVisability", @"Screens\Settings\VisibleInvisible_128x50", this, index++);
            ToggleItem windowResizing  = new ToggleItem(@"Screens\Settings\AllowResizing", @"Screens\Settings\OnOff_53x52", this, index++, 1);
            ToggleItem fullScreen      = new ToggleItem(@"Screens\Settings\FullScreenMode", @"Screens\Settings\OnOff_53x52", this, index++, 1);
            ClickItem  doneItem        = new ClickItem("Done", @"Screens\Settings\Done", this, index++);

            mouseVisability.ToggleValueChanched += new EventHandler <EventArgs>(this.mouseVisability_Changed);
            windowResizing.ToggleValueChanched  += new EventHandler <EventArgs>(this.m_ScreenSettingMng.AllowWindowResizingConfigToggle_Click);
            fullScreen.ToggleValueChanched      += new EventHandler <EventArgs>(this.m_ScreenSettingMng.FullScreenModeConfigToggle_Click);
            doneItem.ItemClicked += new EventHandler <ScreenEventArgs>(this.menuItem_Click);

            this.AddMenuItem(mouseVisability);
            this.AddMenuItem(windowResizing);
            this.AddMenuItem(fullScreen);
            this.AddMenuItem(doneItem);
        }
예제 #13
0
    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
        }
    }
예제 #14
0
파일: Task.cs 프로젝트: salma-s/Meltdown
 public TapTask()
 {
     tap = GameObject.FindGameObjectWithTag("Tap").GetComponent <ToggleItem>();
 }
    void GenerateUI()
    {
        var settings  = GetComponent <DriveAdminUISettings>();
        var driverCam = settings.driverCam;

        adminCategories = new AdminCategory[6];

        //Admin
        var admin = new AdminCategory("OBSTACLES", "WAYPOINTS", "TRAFFIC", "AUTOPLAY");

        admin.col0.Add(new ButtonItem()
        {
            label    = "OBSTACLE ONE",
            callback = TrackController.Instance.TriggerObstacle1
        });
        admin.col0.Add(new ButtonItem()
        {
            label    = "OBSTACLE TWO",
            callback = TrackController.Instance.TriggerObstacle2
        });
        if (TrackController.Instance.obstacles.Count > 2)
        {
            admin.col0.Add(new ButtonItem()
            {
                label    = "OBSTACLE THREE",
                callback = TrackController.Instance.TriggerObstacle3
            });
        }
        if (TrackController.Instance.obstacles.Count > 3)
        {
            admin.col0.Add(new ButtonItem()
            {
                label    = "OBSTACLE FOUR",
                callback = TrackController.Instance.TriggerObstacle4
            });
        }
        if (TrackController.Instance.obstacles.Count > 4)
        {
            admin.col0.Add(new ButtonItem()
            {
                label    = "OBSTACLE FIVE",
                callback = TrackController.Instance.TriggerObstacle5
            });
        }

        admin.col0.Add(new ButtonItem()
        {
            label    = "DESTROY OBSTACLES",
            callback = TrackController.Instance.KillObstacles
        });

        admin.col1.Add(new ButtonItem()
        {
            label    = "WAYPOINT ONE",
            callback = TrackController.Instance.RepositionWaypoint1
        });
        admin.col1.Add(new ButtonItem()
        {
            label    = "WAYPOINT TWO",
            callback = TrackController.Instance.RepositionWaypoint2
        });
        admin.col1.Add(new ButtonItem()
        {
            label    = "WAYPOINT THREE",
            callback = TrackController.Instance.RepositionWaypoint3
        });
        admin.col1.Add(new ButtonItem()
        {
            label    = "WAYPOINT FOUR",
            callback = TrackController.Instance.RepositionWaypoint4
        });
        admin.col1.Add(new SeperatorItem());
        if (TrackController.Instance.predefinedPaths != null && TrackController.Instance.predefinedPaths.Length > 0)
        {
            admin.col1.Add(new ButtonItem()
            {
                label    = "PREDEFINED PATH ONE",
                callback = () => TrackController.Instance.StartPredefined(0)
            });
        }
        if (TrackController.Instance.predefinedPaths != null && TrackController.Instance.predefinedPaths.Length > 1)
        {
            admin.col1.Add(new ButtonItem()
            {
                label    = "PREDEFINED PATH TWO",
                callback = () => TrackController.Instance.StartPredefined(1)
            });
        }
        if (TrackController.Instance.predefinedPaths != null && TrackController.Instance.predefinedPaths.Length > 2)
        {
            admin.col1.Add(new ButtonItem()
            {
                label    = "PREDEFINED PATH THREE",
                callback = () => TrackController.Instance.StartPredefined(2)
            });
        }
        if (TrackController.Instance.predefinedPaths != null && TrackController.Instance.predefinedPaths.Length > 3)
        {
            admin.col1.Add(new ButtonItem()
            {
                label    = "PREDEFINED PATH FOUR",
                callback = () => TrackController.Instance.StartPredefined(3)
            });
        }



        var trafEnable = new ToggleItem()
        {
            label = "Enable/Disable",
            value = false,
            get   = () =>
            {
                if (settings.traffic == null)
                {
                    return(false);
                }
                else
                {
                    return(settings.traffic.GetState());
                }
            },
            set = (b) =>
            {
                if (settings.traffic != null)
                {
                    settings.traffic.SetTraffic(b);
                }
            }
        };

        admin.col2.Add(trafEnable);
        settings.updateEachFrame.Add(trafEnable);

        var auto = new ToggleItem()
        {
            label = "Autoplay",
            value = TrackController.Instance.IsInAutoPath(),
            get   = () => TrackController.Instance.IsInAutoPath(),
            set   = (b) =>
            {
                TrackController.Instance.AutoPath();
            }
        };

        admin.col3.Add(auto);
        settings.updateEachFrame.Add(auto);

        //Weather + cam
        var weatherCam = new AdminCategory("TIME", "WEATHER", "DISPLAY CONFIGURATION", "CAMERA CONFIGURATION");

        /*
         * var tod = new SliderItemTime()
         * {
         *  label = "Time of Day",
         *  min = 0f,
         *  max = 24f,
         *  value = AdminSettings.Instance.timeOfDay,
         *  get = () => timeOfDay.Cycle.Hour,
         *  set = (f) => settings.SetTimeOfDay(f)
         * };
         * weatherCam.col0.Add(tod);
         * settings.updateEachFrame.Add(tod);
         * weatherCam.col0.Add(new ToggleItem()
         * {
         *  label = "Progess Time",
         *  value = AdminSettings.Instance.progressTime,
         *  get = () => timeOfDay.Components.Time.enabled,
         *  set = (b) => timeOfDay.Components.Time.enabled = b
         * });
         * var weather = new RadioItem()
         * {
         *  label = "Weather",
         *  labels = new string[] {"Clear", "Storm", "Overcast"},
         *  selected = 0,
         *  get = () => AdminSettings.Instance.weather,
         *  set = (i) =>
         *  {
         * //                AdminSettings.Instance.weather = i;
         * //                var newWeather = AdminSettings.Instance.GetWeather();
         * //                settings.weather.currentWeather = newWeather;
         * //                settings.weather.ChangeWeather(newWeather);
         *  }
         * };
         *
         * weatherCam.col1.Add(weather);
         * settings.updateEachFrame.Add(weather);
         * var wetRoad = new ToggleItem()
         * {
         *  label = "Wet Road",
         *  value = false,
         *  get = () => WetRoads.instance.IsWet(),
         *  set = (t) => WetRoads.instance.ToggleWet(t)
         * };
         * weatherCam.col1.Add(wetRoad);
         * settings.updateEachFrame.Add(wetRoad);
         * weatherCam.col1.Add(new ToggleItem()
         * {
         *  label = "Sun Shafts",
         *  value = false,
         *  get = () => AdminSettings.Instance.sunshafts,
         *  set = (b) =>
         *  {
         *      AdminSettings.Instance.sunshafts = b;
         *      TrackController.Instance.driverCam.center.GetComponent<TOD_SunShafts>().enabled = b;
         *  }
         * });
         *
         * weatherCam.col1.Add(new ToggleItem()
         * {
         *  label = "Enable Fog",
         *  value = false,
         *  get = () => AdminSettings.Instance.fog,
         *  set = (b) => AdminSettings.Instance.fog = b
         * });
         */
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "PARABOLIC PROJECTION",
            callback = () =>
            {
                AdminSettings.Instance.displayType = AdminScreen.DisplayType.PARABOLIC;
                settings.SetDisplay();
            }
        });
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "24\" MONITOR CONFIGURATION",
            callback = () =>
            {
                AdminSettings.Instance.displayType = AdminScreen.DisplayType.TENTYFOURINCH;
                settings.SetDisplay();
            }
        });
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "55\" MONITOR CONFIGURATION",
            callback = () =>
            {
                AdminSettings.Instance.displayType = AdminScreen.DisplayType.FIFTYFIVEINCH;
                settings.SetDisplay();
            }
        });
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "FLAT PLANE",
            callback = () =>
            {
                AdminSettings.Instance.displayType = AdminScreen.DisplayType.FLAT;
                settings.SetDisplay();
            }
        });
        weatherCam.col2.Add(new SeperatorItem());
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "LOAD DEFAULTS",
            callback = LoadMisc
        });
        weatherCam.col2.Add(new ButtonItem()
        {
            label    = "SAVE CURRENT SETTINGS AS DEFAULT",
            callback = SaveMisc
        });
        weatherCam.col2.Add(new SeperatorItem());
        weatherCam.col2.Add(new ToggleItem()
        {
            label = "Display System Stats",
            value = false
        });

        weatherCam.col3.Add(new SliderItem()
        {
            label = "Field of View",
            min   = 10f,
            max   = 125f,
            value = AdminSettings.Instance.fov,
            get   = () => AdminSettings.Instance.fov,
            set   = (f) =>
            {
                driverCam.SetFoV(f);
                AdminSettings.Instance.fov = f;
            }
        });
        weatherCam.col3.Add(new SliderItem()
        {
            label = "Camera Clipping",
            min   = 1f,
            max   = 15000f,
            value = AdminSettings.Instance.camFarClip,
            get   = () => AdminSettings.Instance.camFarClip,
            set   = (f) => settings.SetFarClip(f)
        });

        //Audio
        var audio = new AdminCategory("AUDIO", "", "", "");

        audio.col0.Add(new AudioSliderItem()
        {
            label = "Music",
            min   = 0f,
            max   = 1f,
            value = AdminSettings.Instance.musicVol,
            get   = () => AudioController.Instance.MusicVolume,
            set   = (f) => AudioController.Instance.MusicVolume = f
        });
        audio.col0.Add(new AudioSliderItem()
        {
            label = "Foley",
            min   = 0f,
            max   = 1f,
            value = AdminSettings.Instance.foleyVol,
            get   = () => AudioController.Instance.FoleyVolume,
            set   = (f) => AudioController.Instance.FoleyVolume = f
        });
        audio.col0.Add(new AudioSliderItem()
        {
            label = "Vehicle",
            min   = 0f,
            max   = 1f,
            value = AdminSettings.Instance.vehicleVol,
            get   = () => AudioController.Instance.VehicleVolume,
            set   = (f) => AudioController.Instance.VehicleVolume = f
        });


        //Vehicle settings
        var vehicle = new AdminCategory("VEHICLE CONFIGURATION", "", "", "", new float[] { 0f, -97f, -97f, -97f });

        /* vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Car Mass",
         *   min = 100f,
         *   max = 5000f,
         *   value = configurator.Mass,
         *   get = () => configurator.Mass,
         *   set = (f) => configurator.Mass = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Forward Grip",
         *   min = 100f,
         *   max = 3000f,
         *   value = configurator.ForwardGrip,
         *   get = () => configurator.ForwardGrip,
         *   set = (f) => configurator.ForwardGrip = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Forward GripRange",
         *   min = 0.5f,
         *   max = 20f,
         *   value = configurator.ForwardGripRange,
         *   get = () => configurator.ForwardGripRange,
         *   set = (f) => configurator.ForwardGripRange = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Forward Drift",
         *   min = 10f,
         *   max = 1500f,
         *   value = configurator.ForwardDrift,
         *   get = () => configurator.ForwardDrift,
         *   set = (f) => configurator.ForwardDrift = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Forward Drift Slope",
         *   min = 0f,
         *   max = 1f,
         *   value = configurator.ForwardDriftSlope,
         *   get = () => configurator.ForwardDriftSlope,
         *   set = (f) => configurator.ForwardDriftSlope = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Sideways Drift",
         *   min = 10f,
         *   max = 1000f,
         *   value = configurator.SidewaysDrift,
         *   get = () => configurator.SidewaysDrift,
         *   set = (f) => configurator.SidewaysDrift= f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Sideways Grip",
         *   min = 50f,
         *   max = 1500f,
         *   value = configurator.SidewaysGrip,
         *   get = () => configurator.SidewaysGrip,
         *   set = (f) => configurator.SidewaysGrip = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Sideways Grip Range",
         *   min = 0.5f,
         *   max = 20f,
         *   value = configurator.SidewaysGripRange,
         *   get = () => configurator.SidewaysGripRange,
         *   set = (f) => configurator.SidewaysGripRange = f
         * });
         * vehicle.col0.Add(new SliderItem()
         * {
         *   label = "Brake Balance",
         *   min = 0f,
         *   max = 1f,
         *   value = configurator.BrakeBalance,
         *   get = () => configurator.BrakeBalance,
         *   set = (f) => configurator.BrakeBalance = f
         * });
         *
         *
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Motor Max",
         *   min = 0.5f,
         *   max = 8f,
         *   value = configurator.MotorMax,
         *   get = () => configurator.MotorMax,
         *   set = (f) => configurator.MotorMax = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Brake Max",
         *   min = 0.5f,
         *   max = 8f,
         *   value = configurator.BrakeMax,
         *   get = () => configurator.BrakeMax,
         *   set = (f) => configurator.BrakeMax = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Motor Perf. Peak",
         *   min = 1f,
         *   max = 20f,
         *   value = configurator.MotorPerformancePeak,
         *   get = () => configurator.MotorPerformancePeak,
         *   set = (f) => configurator.MotorPerformancePeak = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Motor Force Factor",
         *   min = 0.1f,
         *   max = 5f,
         *   value = configurator.MotorForceFactor,
         *   get = () => configurator.MotorForceFactor,
         *   set = (f) => configurator.MotorForceFactor = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Motor Balance",
         *   min = 0f,
         *   max = 1f,
         *   value = configurator.MotorBalance,
         *   get = () => configurator.MotorBalance,
         *   set = (f) => configurator.MotorBalance = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Sdwys Drift Friction",
         *   min = 0.01f,
         *   max = 1f,
         *   value = configurator.SidewaysDriftFriction,
         *   get = () => configurator.SidewaysDriftFriction,
         *   set = (f) => configurator.SidewaysDriftFriction = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Static Friction Max",
         *   min = 100f,
         *   max = 4000f,
         *   value = configurator.StaticFrictionMax,
         *   get = () => configurator.StaticFrictionMax,
         *   set = (f) => configurator.StaticFrictionMax = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Max Steer Angle",
         *   min = 10f,
         *   max = 80f,
         *   value = configurator.MaxSteerAngle,
         *   get = () => configurator.MaxSteerAngle,
         *   set = (f) => configurator.MaxSteerAngle = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Front Sideways Grip",
         *   min = 0.2f,
         *   max = 3f,
         *   value = configurator.FrontSidewaysGrip,
         *   get = () => configurator.FrontSidewaysGrip,
         *   set = (f) => configurator.FrontSidewaysGrip = f
         * });
         * vehicle.col1.Add(new SliderItem()
         * {
         *   label = "Sideways Drift Slope",
         *   min = 0f,
         *   max = 3f,
         *   value = configurator.SidewaysDriftSlope,
         *   get = () => configurator.SidewaysDriftSlope,
         *   set = (f) => configurator.SidewaysDriftSlope = f
         * });
         *
         *
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Air Drag",
         *   min = 0.1f,
         *   max = 30f,
         *   value = configurator.AirDrag,
         *   get = () => configurator.AirDrag,
         *   set = (f) => configurator.AirDrag = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Friction Drag",
         *   min = 0.1f,
         *   max = 50f,
         *   value = configurator.FrictionDrag,
         *   get = () => configurator.FrictionDrag,
         *   set = (f) => configurator.FrictionDrag = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Rolling Friction Slip",
         *   min = 0.01f,
         *   max = 1f,
         *   value = configurator.RollingFrictionSlip,
         *   get = () => configurator.RollingFrictionSlip,
         *   set = (f) => configurator.RollingFrictionSlip = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Anti Roll Bias",
         *   min = 0.01f,
         *   max = 1f,
         *   value = configurator.AntiRollBias,
         *   get = () => configurator.AntiRollBias,
         *   set = (f) => configurator.AntiRollBias = f
         *
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Anti Roll Factor",
         *   min = 0.01f,
         *   max = 2f,
         *   value = configurator.AntiRollFactor,
         *   get = () => configurator.AntiRollFactor,
         *   set = (f) => configurator.AntiRollFactor = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Anti Roll Front",
         *   min = 100f,
         *   max = 20000f,
         *   value = configurator.AntiRollFront,
         *   get = () => configurator.AntiRollFront,
         *   set = (f) => configurator.AntiRollFront = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Anti Roll Back",
         *   min = 100f,
         *   max = 20000f,
         *   value = configurator.AntiRollBack,
         *   get = () => configurator.AntiRollBack,
         *   set = (f) => configurator.AntiRollBack = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Rear Sideways Grip",
         *   min = 0.2f,
         *   max = 3f,
         *   value = configurator.RearSidewaysGrip,
         *   get = () => configurator.RearSidewaysGrip,
         *   set = (f) => configurator.RearSidewaysGrip = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "Brake Force Factor",
         *   min = 0.1f,
         *   max = 5f,
         *   value = configurator.BrakeForceFactor,
         *   get = () => configurator.BrakeForceFactor,
         *   set = (f) => configurator.BrakeForceFactor = f
         * });
         * vehicle.col2.Add(new SliderItem()
         * {
         *   label = "AutoSteer Level",
         *   min = 0f,
         *   max = 2f,
         *   value = configurator.AutoSteerLevel,
         *   get = () => configurator.AutoSteerLevel,
         *   set = (f) => configurator.AutoSteerLevel = f
         * });
         *
         *
         *
         * vehicle.col3.Add(new SliderItem()
         * {
         *   label = "Headlight Angle",
         *   min = -20f,
         *   max = 10f,
         *   value = configurator.HeadlightAngle,
         *   get = () => configurator.HeadlightAngle,
         *   set = (f) => configurator.HeadlightAngle = f
         * });
         * vehicle.col3.Add(new SliderItem()
         * {
         *   label = "Force Feedback mult.",
         *   min = 0f,
         *   max = 4f,
         *   value = configurator.ForceFeedbackMultiplier,
         *   get = () => configurator.ForceFeedbackMultiplier,
         *   set = (f) => configurator.ForceFeedbackMultiplier = f
         * });
         * vehicle.col3.Add(new SliderItem()
         * {
         *   label = "Force Feedback slip coeff.",
         *   min = 0.1f,
         *   max = 20f,
         *   value = configurator.ForceFeedbackSlipCoefficient,
         *   get = () => configurator.ForceFeedbackSlipCoefficient,
         *   set = (f) => configurator.ForceFeedbackSlipCoefficient = f
         * });
         * vehicle.col3.Add(new SliderItem()
         * {
         *   label = "FFB Damper Max Speed",
         *   min = 0.1f,
         *   max = 50f,
         *   value = configurator.ForceFeedbackDamperMaxSpeed,
         *   get = () => configurator.ForceFeedbackDamperMaxSpeed,
         *   set = (f) => configurator.ForceFeedbackDamperMaxSpeed = f
         * });
         * vehicle.col3.Add(new SliderItem()
         * {
         *   label = "FFB Damper Strength",
         *   min = 0f,
         *   max = 100f,
         *   value = configurator.ForceFeedbackDamperStrength,
         *   get = () => configurator.ForceFeedbackDamperStrength,
         *   set = (f) => configurator.ForceFeedbackDamperStrength = f
         * });
         *
         * vehicle.col3.Add(new ToggleItem()
         * {
         *   label = "Enable Headlights",
         *   value = false,
         *   get = () => configurator.EnableHeadlights,
         *   set = (b) => configurator.EnableHeadlights = b
         * });
         */
        vehicle.col3.Add(new ButtonItem()
        {
            label    = "LOAD DRY DEFAULTS",
            callback = () => LoadCar(false)
        });
        vehicle.col3.Add(new ButtonItem()
        {
            label    = "SAVE CURRENT SETTINGS AS DRY DEFAULT",
            callback = () => SaveCar(false)
        });
        vehicle.col3.Add(new ButtonItem()
        {
            label    = "LOAD WET DEFAULTS",
            callback = () => LoadCar(true)
        });
        vehicle.col3.Add(new ButtonItem()
        {
            label    = "SAVE CURRENT SETTINGS AS WET DEFAULT",
            callback = () => SaveCar(true)
        });

        var endScene = new AdminCategory("END SCENE", "", "", "");

        endScene.col0.Add(new ButtonItem()
        {
            label    = "CONFIRM END SCENE",
            callback = TrackController.Instance.ConfirmEndScene
        });
        endScene.col0.Add(new ButtonItem()
        {
            label    = "CANCEL END SCENE",
            callback = () => currentCategory = 0
        });

        var map     = new AdminCategory("MAP", "", "", "");
        var mapItem = new MapItem()
        {
            environment = AppController.Instance.currentSessionSettings.selectedEnvironment == Environment.NONE  ? settings.mapEnvironment : AppController.Instance.currentSessionSettings.selectedEnvironment
        };

        map.col0.Add(mapItem);
        settings.updateEachFrame.Add(mapItem);
        // var infractions = new InfractionsItem();
        // map.col0.Add(infractions);
        // settings.updateEachFrame.Add(infractions);


        adminCategories[0] = admin;
        adminCategories[1] = weatherCam;
        adminCategories[2] = map;
        adminCategories[3] = audio;
        adminCategories[4] = vehicle;
        adminCategories[5] = endScene;


        //  LoadCar(false);   --old configurator - disable for now
        LoadMisc();
    }
예제 #16
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
        }
    }
예제 #17
0
        //Inspecter value (DialogItemParameter) -> Local value (DialogItem).
        //(*) When internal processing, it is used dialogItems.
        //・Make 'key -> index' table
        //・Store the values of the inspector (initValue).
        //・Check for key exist.
        private void ConvertToDialogItem()
        {
            if (items == null || items.Length == 0)     //from inspector
            {
                return;
            }

            dialogItems = new DialogItem[items.Length];
            initValue   = new DialogItem[items.Length];
            keyToIndex.Clear();
            int keyCount = 0;

            for (int i = 0; i < items.Length; i++)
            {
                var item = items[i];
                if (item == null)
                {
                    continue;
                }

                switch (item.type)
                {
                case DialogItemType.Divisor:
                    dialogItems[i] = new DivisorItem(item.lineHeight, item.lineColor);
                    initValue[i]   = ((DivisorItem)dialogItems[i]).Clone();
                    break;

                case DialogItemType.Text:
                    string align = item.align.ToString().ToLower();
                    dialogItems[i] = new TextItem(item.Text, item.textColor, item.backgroundColor, align == "none" ? "" : align);
                    initValue[i]   = ((TextItem)dialogItems[i]).Clone();
                    break;

                case DialogItemType.Switch:
                    dialogItems[i] = new SwitchItem(item.Text, item.key, item.defaultChecked, item.textColor, "ReceiveChanged");
                    initValue[i]   = ((SwitchItem)dialogItems[i]).Clone();
                    if (!string.IsNullOrEmpty(item.key))
                    {
                        keyToIndex[item.key] = i;
                    }
                    keyCount++;
                    break;

                case DialogItemType.Slider:
                    dialogItems[i] = new SliderItem(item.Text, item.key, item.value, item.minValue, item.maxValue, item.digit, item.textColor, "ReceiveChanged");
                    initValue[i]   = ((SliderItem)dialogItems[i]).Clone();
                    if (!string.IsNullOrEmpty(item.key))
                    {
                        keyToIndex[item.key] = i;
                    }
                    keyCount++;
                    break;

                case DialogItemType.Toggle:
                    dialogItems[i] = new ToggleItem(item.TogglesTexts, item.key, item.TogglesValues, item.toggleItems[item.checkedIndex].value, item.textColor, "ReceiveChanged");
                    initValue[i]   = ((ToggleItem)dialogItems[i]).Clone();
                    if (!string.IsNullOrEmpty(item.key))
                    {
                        keyToIndex[item.key] = i;
                    }
                    keyCount++;
                    break;

                case DialogItemType.Check:
                    dialogItems[i] = new CheckItem(item.Text, item.key, item.defaultChecked, item.textColor, "ReceiveChanged");
                    initValue[i]   = ((CheckItem)dialogItems[i]).Clone();
                    if (!string.IsNullOrEmpty(item.key))
                    {
                        keyToIndex[item.key] = i;
                    }
                    keyCount++;
                    break;
                }
            }
#if UNITY_EDITOR
            //Check for errors (Editor only).
            if (keyCount != keyToIndex.Count)
            {
                Debug.LogError("[" + gameObject.name + "] There is empty or duplicate 'Key'.");
            }
#endif
        }
예제 #18
0
      private void CheckControls()
      {
          //back button
          if (Globals.inputController.isButtonPressed(Buttons.B, null))
          {
              this.fadeOutCompleteCallback = backToGame;
              this.StartTransitionOff();
          }

          //select (enter)
          else if (Globals.inputController.isButtonPressed(Buttons.A, null))
          {
              //Globals.audioManager.PlayMenuSound("menu_select");

              /*
               */
              if (submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected] is TransitionItem)
              {
                  TransitionItem current     = (TransitionItem)submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected];
                  int            destination = current.destination;
                  if (destination == -1)
                  {
                      this.StartTransitionOff();
                  }

                  else
                  {
                      currentSubMenuIndex = destination;
                  }
              }
              else if (submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected] is DelegateItem)
              {
                  DelegateItem current = (DelegateItem)submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected];

                  this.fadeOutCompleteCallback = current.function;
                  this.StartTransitionOff();
              }
          }

          //GOING UP IN MENUS
          else if (Globals.inputController.isButtonPressed(Buttons.DPadUp, null) || Globals.inputController.isButtonPressed(Buttons.LeftThumbstickUp, null))
          {
              int selectedIndex = submenus[currentSubMenuIndex].selected;
              int size          = submenus[currentSubMenuIndex].items.Count();
              int newIndex      = selectedIndex - 1;

              if (newIndex < 0)
              {
                  newIndex = size - 1;
              }

              submenus[currentSubMenuIndex].selected = newIndex;
          }

          //GOING DOWN IN MENUS
          else if (Globals.inputController.isButtonPressed(Buttons.DPadDown, null) || Globals.inputController.isButtonPressed(Buttons.LeftThumbstickDown, null))
          {
              int selectedIndex = submenus[currentSubMenuIndex].selected;
              int size          = submenus[currentSubMenuIndex].items.Count();
              int newIndex      = ++selectedIndex;

              if (newIndex == size)
              {
                  newIndex = 0;
              }

              submenus[currentSubMenuIndex].selected = newIndex;
          }

          //GOING LEFT IN MENUS (TOGGLE)
          else if (Globals.inputController.isButtonPressed(Buttons.DPadLeft, null) || Globals.inputController.isButtonPressed(Buttons.LeftThumbstickLeft, null))
          {
              if (submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected] is ToggleItem)
              {
                  ToggleItem currentToggle = (ToggleItem)submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected];

                  int selectedIndex = currentToggle.current;
                  int size          = currentToggle.values.Count();
                  int newIndex      = selectedIndex - 1;

                  if (newIndex < 0)
                  {
                      newIndex = size - 1;
                  }
                  currentToggle.current = newIndex;
              }
          }

          //GOING RIGHT IN MENUS (TOGGLE)
          else if (Globals.inputController.isButtonPressed(Buttons.DPadRight, null) || Globals.inputController.isButtonPressed(Buttons.LeftThumbstickRight, null))
          {
              if (submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected] is ToggleItem)
              {
                  ToggleItem currentToggle = (ToggleItem)submenus[currentSubMenuIndex].items[submenus[currentSubMenuIndex].selected];

                  int selectedIndex = currentToggle.current;
                  int size          = currentToggle.values.Count();
                  int newIndex      = ++selectedIndex;

                  if (newIndex == size)
                  {
                      newIndex = 0;
                  }
                  currentToggle.current = newIndex;
              }
          }
      }
예제 #19
0
파일: Task.cs 프로젝트: salma-s/Meltdown
 public LightSwitchTask(ToggleItem lightSwitch, TaskTypes whichSwitch)
 {
     this.lightSwitch = lightSwitch;
     this.whichSwitch = whichSwitch;
 }