- Home /
Rotating camera with RMB drag
Hey guys, 4th post. I'm picking up more and more of Unity scripting as I'm going, and now I come asking not for advice on how to begin coding something, but rather advice making a minor correction to something I've created already.
The game mechanic in question is camera rotation - more specifically, orbiting the camera around the (perceived) center of the screen. It's to be a strategy-style camera. It already pans, and rotates correctly, although it previously rotated one direction by pressing and holding the RMB. The code that achieved this is as follows:
private var targetPosition : Vector3;
if (Input.GetMouseButtonDown(1)) { targetPosition = transform.position; targetPosition += transform.forward * 27; }
} if (Input.GetMouseButton(1)) transform.RotateAround(targetPosition,Vector3.up,50*Time.deltaTime);
Now while this worked wonderfully, I'd like the camera to rotateAround (only horizontally) by dragging the mouse with the RMB held down, left and right. The code below works, to a degree, but doesn't limit it to the horizontal axis, instead going (pardon the expression) 'mental' vertically and horizontally.
I just can't for the life of me find a way to restrict to the horizontal axis that doesn't result in a syntax error!
Here's the nearly-operable code:
var rmbDownPoint : Vector2; var mouseRightDrag : boolean = false; private var targetPosition : Vector3;
// Right Mouse Hold if (Input.GetMouseButton(1)) { Screen.showCursor = false; } else { Screen.showCursor = true; } //Move mouse left or right with RMB held if (Input.GetMouseButtonDown(1)) { rmbDownPoint = Input.mousePosition; mouseRightDrag = true; }
if (mouseRightDrag) { var dragDifference : Vector2 = rmbDownPoint - Input.mousePosition; targetPosition += transform.forward * 27; transform.RotateAround(targetPosition,Vector3.up+dragDifference ,50*Time.deltaTime); }
if(Input.GetMouseButtonUp(1)) { mouseRightDrag = false; }
Answer by Ozale · Jan 29, 2011 at 09:24 AM
Ok, I've fixed it, incorporating 'Input.GetAxis' into the function.
Your answer
Follow this Question
Related Questions
Make camera rotate don't stop 1 Answer
How to make the camera rotate only when right click is held down on the mouse? 1 Answer
Global Fog, rotating the camera by itself 0 Answers
Limit rotation from another script 0 Answers
Quaternion - Euler Angles, weird variable swapping when converting 2 Answers