void Start() { current_setter = this; controller = ReInput.controllers.GetController(ControllerType.Keyboard, 0); temp_controller = ReInput.controllers.GetController(ControllerType.Keyboard, 0); LoadControllerList(); UpdateChildren(); }
/// <summary> /// Draws keys definition in specified location. /// </summary> /// <param name="panelWidth">Panel width.</param> /// <param name="panelHeight">Panel height.</param> /// <param name="rowHeight">Row height.</param> /// <param name="rowOffset">Distance between 2 rows (Including rowHeight).</param> private void drawDefineKeys(float panelWidth, float panelHeight, float rowHeight, float rowOffset) { int cur=0; for (int i=0; i<controlSetters.Count; ++i) { GUI.Label(new Rect(0, rowOffset*cur, panelWidth*0.4f, rowHeight), localizationKeys[i], currentTextStyle(cur)); if (controlSetters[i].draw(new Rect(panelWidth*0.45f, rowOffset*cur, panelWidth*0.55f, rowHeight))) { selectedControlSetter=controlSetters[i]; } else { if (selectedControlSetter==controlSetters[i]) { selectedControlSetter=null; } } ++cur; } if (drawButton(localizationBack, panelWidth, panelHeight, rowHeight, rowOffset, cur)) { selectItem(cur); } }
// Use this for initialization void Start() { #region Create text styles saveTextStyle=new GUIStyle(); saveTextStyle.alignment=TextAnchor.UpperLeft; saveTextStyle.wordWrap=true; saveTextStyle.clipping=TextClipping.Clip; saveTextStyle.normal.textColor=Color.white; #endregion #region Game #if OPTION_LANGUAGE List<CultureInfo> availableLanguages=LanguageManager.Instance.AvailableLanguagesCultureInfo; string[] languages=new string[availableLanguages.Count]; for (int i=0; i<availableLanguages.Count; ++i) { languages[i]=availableLanguages[i].EnglishName; } languageScroller=new SelectionScroller(languages, 0, scrollerLeftTexture, scrollerRightTexture); languageScroller.setModifiedFunction(settingsModified); #endif #if OPTION_DIFFICULTY difficultyScroller=new SelectionScroller(null, 0, scrollerLeftTexture, scrollerRightTexture); difficultyScroller.setModifiedFunction(settingsModified); #endif #if OPTION_BLOOD bloodCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); bloodCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_USE_HINTS useHintsCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); useHintsCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_AUTOSAVE autosaveCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); autosaveCheckBox.setModifiedFunction(settingsModified); #endif #endregion #region Audio #if OPTION_SOUND soundCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); soundCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_MASTER_VOLUME masterVolumeSlider = new BigHorizontalSlider(mMasterVolume, 0f, 1f); masterVolumeSlider.setModifiedFunction (settingsModified); #endif #if OPTION_MUSIC_VOLUME musicVolumeSlider = new BigHorizontalSlider(mMusicVolume, 0f, 1f); musicVolumeSlider.setModifiedFunction (settingsModified); #endif #if OPTION_VOICE_VOLUME voiceVolumeSlider = new BigHorizontalSlider(mVoiceVolume, 0f, 1f); voiceVolumeSlider.setModifiedFunction(settingsModified); #endif #if OPTION_EFFECTS_VOLUME effectsVolumeSlider = new BigHorizontalSlider(mEffectsVolume, 0f, 1f); effectsVolumeSlider.setModifiedFunction(settingsModified); #endif #if OPTION_SUBTITLES subtitlesCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); subtitlesCheckBox.setModifiedFunction(settingsModified); #endif #endregion #region Video #if OPTION_SHOW_FPS showFPSCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); showFPSCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_FULL_SCREEN_AND_RESOLUTION fullScreenCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); fullScreenCheckBox.setModifiedFunction(settingsModified); Resolution[] availableResolutions=Screen.resolutions; string[] resolutions=new string[availableResolutions.Length]; for (int i=0; i<availableResolutions.Length; ++i) { Resolution resolution=availableResolutions[i]; resolutions[i]=resolution.width.ToString()+"x"+resolution.height.ToString()+" : "+resolution.refreshRate.ToString()+" Hz"; } resolutionScroller=new SelectionScroller(resolutions, 0, scrollerLeftTexture, scrollerRightTexture); resolutionScroller.setModifiedFunction(settingsModified); #endif #if OPTION_QUALITY qualityScroller=new SelectionScroller(null, 0, scrollerLeftTexture, scrollerRightTexture); qualityScroller.setModifiedFunction(settingsModified); #endif #endregion #region Controls #if MENU_DEFINE_KEYS selectedControlSetter=null; controlSetters=new List<ControlSetter>(); for (int i=0; i<InputControl.getKeys().Count; ++i) { ControlSetter controlSetter=new ControlSetter(); controlSetter.setModifiedFunction(settingsModified); controlSetters.Add(controlSetter); } localizationKeys=new List<string>(); #endif #if OPTION_ALWAYS_RUN alwaysRunCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); alwaysRunCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_AUTO_AIM autoAimCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); autoAimCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_MOUSE_SENSITIVITY mouseSensitivitySlider=new BigHorizontalSlider(mMouseSensitivity, 0f, mouseSensitivityMaximum); mouseSensitivitySlider.setModifiedFunction(settingsModified); #endif #if OPTION_INVERT_MOUSE_Y invertMouseYCheckBox=new BigCheckBox(checkboxOnTexture, checkboxOffTexture); invertMouseYCheckBox.setModifiedFunction(settingsModified); #endif #if OPTION_INPUT_DEVICE inputDeviceScroller=new SelectionScroller(null, 0, scrollerLeftTexture, scrollerRightTexture); inputDeviceScroller.setModifiedFunction(settingsModified); #endif #endregion #region Localization #if PACKAGE_SMART_LOCALIZATION LanguageManager languageManager=LanguageManager.Instance; languageManager.OnChangeLanguage+=OnChangeLanguage; OnChangeLanguage(languageManager); #else OnChangeLanguage(); #endif #endregion modified = false; askSaving = false; goToOptionsList(0); }
// Update is called once per frame void Update() { #if MENU_DEFINE_KEYS if (selectedControlSetter!=null) { if (Input.GetKeyDown(KeyCode.Escape)) { selectedControlSetter.setSelectedKey(null); selectedControlSetter=null; } else { CustomInput input=InputControl.currentInput(); if (input!=null) { selectedControlSetter.setSelectedKey(input); selectedControlSetter=null; } } } else { #endif if (Input.GetKeyDown(KeyCode.Escape)) { goBack(); } else if (Input.GetKeyDown(KeyCode.UpArrow)) { if (!askSaving && currentItem>0) { --currentItem; float rowHeight = Screen.height*0.1f; float rowOffset = rowHeight+Screen.height*0.025f; float itemTop=currentItem*rowOffset; if (scrollPosition.y>itemTop) { scrollPosition.y=itemTop; } } } else if (Input.GetKeyDown(KeyCode.DownArrow)) { if (!askSaving && currentItem<itemsCount-1) { ++currentItem; float boxHeight = Screen.height*0.9f; float panelHeight = boxHeight*0.98f; float rowHeight = Screen.height*0.1f; float rowOffset = rowHeight+Screen.height*0.025f; float itemBottom=currentItem*rowOffset+rowHeight; if (scrollPosition.y+panelHeight<itemBottom) { scrollPosition.y=itemBottom-panelHeight; } } } else if ( Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter) ) { if (askSaving) { applyChanges(); goToNextStep(); } else { selectItem(currentItem); } } else { if (!askSaving) { controlItem(); } } #if MENU_DEFINE_KEYS } #endif }