- Home /
rotate objests with buttons
I have 4 buttons on my screen, up, down, left, and right. I want it so that when I have my left button held down it tilts towards the left, same with right ect. this is all I have for my script right now, I don't have much. public class TiltFile : MonoBehaviour { public int up = 0; public int side = 0; // Use this for initialization void Start() { } void Update() // runs 60 fps or so { } public void UP() { up++; } public void DOWN() { up--; } public void LEFT() { side++; } public void RIGHT() { side--; } }
can somebody finish it because I'm not sure what to do.
Answer by Lysander · Dec 31, 2017 at 07:25 AM
If you're using the Unity UI buttons, then just point the OnButtonPress events to the RotateUp / RotateDown / etc functions on this script, on the object that you want be rotating.
You can also make this a manager easily enough, by replacing the Transform property with a Transform reference (to some other transform, a 'target object') and then performing the rotations on that transform instead. This would allow you to swap out targets when needed, for instance if you select an object by clicking it (raycasting) and then the buttons would affect that object instead.
public class TiltFile : MonoBehaviour
{
private int up = 0;
private int side = 0;
private Transform _transform = null;
private new Transform transform
{
get
{
if(_transform == null)
_transform = GetComponent<Transform>();
return _transform;
}
}
private void Update()
{
transform.Rotate((Vector3.right * side) * Time.deltaTime, Space.World);
transform.Rotate((Vector3.up * up) * Time.deltaTime, Space.World);
}
public void RotateUp() { up++; }
public void RotateDown() { up--; }
public void RotateLeft() { side--; }
public void RotateRight() { side++; }
}
Answer by josh15 · Dec 31, 2017 at 01:51 AM
public class TiltFile : MonoBehaviour
{
public int up = 0; public int side = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.W)) UP();
if (Input.GetKeyDown(KeyCode.S)) DOWN();
if (Input.GetKeyDown(KeyCode.A)) LEFT();
if (Input.GetKeyDown(KeyCode.D)) RIGHT();
}
public void UP() { up++; }
public void DOWN() { up--; }
public void LEFT() { side++; }
public void RIGHT() { side--; }
}
i didn't understand what do you mean exactly maybe like this
I'm not using actual buttons. I'm using UI buttons for an app.
Your answer

Follow this Question
Related Questions
Flip over an object (smooth transition) 3 Answers
Smoothly rotate while holding 1 Answer
Setting this Event trigger up to not do the function when trigger is up 0 Answers
Have an object continuously rotate towards another 1 Answer
Character Controller slides sideways when it hits objects are angles different from 90 degrees 1 Answer