Connect a objects Y axis to Slider C#

Basically I want a object’s Y axis to be connected with the slider. So when I drag the slider it moves the object up and down. any ideas on where I’m going wrong?. I did this easily in java but im totally new to C# so I’m not sure how to fix it. Thanks for any help.

this is the code i use.

using UnityEngine;
using System.Collections;
 
public class event_trigger_button : MonoBehaviour {
 
public GameObject cameraupdown;  // Object that the camera tracks
public float vSliderValue = 25.0f;  //slider
 
void OnGUI ()
        {                                                                                      
        vSliderValue = GUI.VerticalSlider(new Rect(100, Screen.height / 2 , 30, 250), vSliderValue, 25.0F, 10.0F);
        }
 
void update ()
        {
        Vector3 temp = transform.position;
        temp.y = vSliderValue;
               
        cameraupdown.transform.position = temp;
        }      
 
}

2 Answers

2

Your code looks fine to me, but your update method isn’t getting called, because the Unity/MonoBehavior Update routine is with a capital “U”. It should be:

void Update ()
{
    Vector3 temp = transform.position;
    temp.y = vSliderValue;
 
    cameraupdown.transform.position = temp;
} 

+1 for easily understandable question text, by the way. :slight_smile:

Facepalm thank you for pointing that out. :) If i wanted to make the X and Z axis follow another Gameobject how would i write temp.x = ? temp.z = ? In java when assigning one axis it doesn't touch the other axis, but i guess Vector3 puts all axis to "0" if not assigned. Thanks for the help btw.

It does indeed. Writing Vector3 test = new Vector3(); Initializes test to Vector3.zero. If you want x and z to inherit the x and z of some other object, the easiest way is probably to just make this other gameobject the parent of this one. Its y will then also be relative to the parent, but maybe that's not a problem if the parent's y is 0? If this poses an issue, then you have to grab the other gameobject in this script using GameObject.Find("Name of gameobject") and then access its transform.position through the returned object.

There is no divinity. Only code. :) It would be great if I could persuade you to mark the answer correct. :P

You are a God :), not sure if this is the correctefficient way of doing it but i worked quite well

    Vector3 POV = POV_control.transform.position;
	Vector3 temp = transform.position;
	temp.y = vSliderValue;
	temp.z = POV.z;
	temp.x = POV.x;
	
	cameraupdown.transform.position = temp;