Author Topic: Best Way to Save Slider Value  (Read 4622 times)

echeg

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 11
    • View Profile
Best Way to Save Slider Value
« on: September 21, 2012, 11:43:20 PM »
Я тут прочитал http://www.tasharen.com/forum/index.php?topic=1446.0 что можно по русски =) спросить.

Собственно переписываю самописный Гуй на NGUI возник вопрос с событиями.
У меня есть 2 слайдера один на Громкость музыки, второй на Громкость эффектов. Собственно как лучше сохранить информацию со Слайдера?
Т.е. теоретически я могу например написать скрипт вида:
  1. private var MusicSliderScript : UISlider;
  2. function Update(){
  3.         MusicSliderScript = gameObject.GetComponent(UISlider);
  4.         print(MusicSliderScript.sliderValue);  
  5.         // next save value
  6. }
Приатачить его к слайдеру. Но как то оно наверное не правильно? Опрашивать каждый Апдейт если можно реагировать на сами нажатия?
OnClick в слайдере нету, а но в коде я увидел OnDragThumb (),OnDrag () etc.
Правда когда я в своём скрипте сделал
  1. function OnDragThumb () {
  2.         print ('on drag');
  3. }
Она ни когда не срабатывала. Как лучше быть?

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Best Way to Save Slider Value
« Reply #1 on: September 22, 2012, 11:23:40 AM »
Have you seen the UISoundVolume script?
  1. using UnityEngine;
  2.  
  3. [RequireComponent(typeof(UISlider))]
  4. [AddComponentMenu("NGUI/Interaction/Sound Volume")]
  5. public class UISoundVolume : MonoBehaviour
  6. {
  7.         UISlider mSlider;
  8.  
  9.         void Awake ()
  10.         {
  11.                 mSlider = GetComponent<UISlider>();
  12.                 mSlider.sliderValue = NGUITools.soundVolume;
  13.                 mSlider.eventReceiver = gameObject;
  14.         }
  15.  
  16.         void OnSliderChange (float val)
  17.         {
  18.                 NGUITools.soundVolume = val;
  19.         }
  20. }

echeg

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 11
    • View Profile
Re: Best Way to Save Slider Value
« Reply #2 on: September 23, 2012, 10:07:49 AM »
I did not see because I use the free version NGUI.
If I understand it version 2.0.7c. A script UISoundVolume appeared only in 2.1.0?

echeg

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 11
    • View Profile
Re: Best Way to Save Slider Value
« Reply #3 on: September 23, 2012, 11:23:31 AM »
But thx I write:

  1. private var MusicSliderScript : UISlider;
  2. function Awake(){
  3.         MusicSliderScript = gameObject.GetComponent(UISlider);
  4.         MusicSliderScript.eventReceiver = gameObject;
  5. }
  6.  
  7. function OnSliderChange  (val : float) {
  8.         print ('chane '+val);
  9. }