- Home /
Slider to control object rotation cause Object reference problem
I have a slider and a turret. I can move the turret with keyboard using a script that has commands like this
 transform.Rotate(turret.forward)
Now I want to move the same object using a slider, so I have tried to attach this script to the turret
 private var mySlider: UnityEngine.UI.Slider;
 var myTurret : Transform;
 
 function Start () {
     mySlider=GameObject.FindGameObjectWithTag("MySliderTag") as UnityEngine.UI.Slider;
 
 }
 
 function Update () {
     if(mySlider != null){
         myTurret.transform.rotation.eulerAngles.z = mySlider.value;
     }
 }
Unfortunately doesn't work, the turet doesn't move and if I remove the null check non mySlyder I can see the error
 *Object reference not set to an instance of an object.*
Answer by SMH17 · Jun 22, 2015 at 08:52 PM
mySlider is a GameObject you have to get the Component as UI.Slide. 
Try this:
 private var mySlider: UnityEngine.UI.Slider;
 var myTurret : Transform;
 
 function Start () {
     var slider=GameObject.FindGameObjectWithTag("MySliderTag");
     mySlider=slider.GetComponent(UnityEngine.UI.Slider) as UnityEngine.UI.Slider;
 }
 
 function Update () {
         myTurret.transform.rotation.eulerAngles.z = mySlider.value;
 }
Answer by brunopava · Jun 22, 2015 at 07:27 PM
You need to use "GetComponent", in doing so you won't need to cast. http://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
 mySlider = GameObject.FindGameObjectWithTag("MySliderTag").GetComponent(UnityEngine.UI.Slider);
Your answer
 
 
             Follow this Question
Related Questions
GUI.Box NullReferenceException 0 Answers
NGUI - how do I put a value on a UISlider in Javascript? 1 Answer
Access function in another script cause Object reference error 1 Answer
Setting Scroll View Width GUILayout 1 Answer
cant slide GUI slider 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                