Hey, Sorry if this seems like a silly mistake, I’ve only been using Unity for about a week, and there’s something here I’m just not quite grasping.
I want to use a fairly basic 3rd Person Control scheme for my game. It differs from the default one, in the sense that when the mouse is moved left or right I want the character to rotate left or right in sync with the camera. Sort of like WoW.
The simple code I’m using to rotate the character with the camera is working just fine.
if(Input.GetButton("MouseRotate")) {
_myTransform.Rotate(0, Input.GetAxis("MouseRotate") * 0.02f, 0);
}
The code for the camera is giving me some headaches though…
if(_camButtonDown)
{
_x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
_y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
RotateCamera();
}
private void RotateCamera() {
Quaternion rotation = Quaternion.Euler(_y, _x, 0);
Vector3 position = rotation * new Vector3(0.0f, 0.0f, -walkDistance) + target.position;
_myTransform.rotation = rotation;
_myTransform.position = position;
}
It’s almost working as Intended, however whenever the button to rotate the camera is pressed the camera changes to an angle to the left of the character instead of from straight behind. I don’t particularly understand Vectors or Quaternion’s too well yet ![]()
This seems like a very simple variable value issue but after several hours I’m not sure what i’ve done. rofl ![]()