Question by
LordTravolta · May 27, 2016 at 10:41 PM ·
c#cameramovementcamera-movementplayer movement
How to have your player controls change while your camera rotates?
Hi!
I have a isometric prototype project, where my camera rotates 90 degrees from a point in 3D real space.
[My code for the rotation is here:] [If you're going to give me examples, please write them in C#]
using UnityEngine;
using System.Collections;
public class CameraRotation : MonoBehaviour {
public GameObject targetObject;
private float targetAngle = 0;
const float rotationAmount = 1.5f;
public float rDistance = 3.0f;
public float rSpeed = 10.0f;
void Update()
{
//dank
if (Input.GetKeyDown(KeyCode.Q))
{
targetAngle -= 90.0f;
} else if (Input.GetKeyDown(KeyCode.E))
{
targetAngle += 90.0f;
}
if(targetAngle !=0)
{
Rotate();
}
}
protected void Rotate()
{
float step = rSpeed * Time.deltaTime;
float orbitCircumfrance = 2F * rDistance * Mathf.PI;
float distanceDegrees = (rSpeed / orbitCircumfrance) * 360;
float distanceRadians = (rSpeed / orbitCircumfrance) * 2 * Mathf.PI;
if (targetAngle>0)
{
transform.RotateAround(targetObject.transform.position, Vector3.up, -rotationAmount);
targetAngle -= rotationAmount;
}
else if(targetAngle <0)
{
transform.RotateAround(targetObject.transform.position, Vector3.up, rotationAmount);
targetAngle += rotationAmount;
}
}
}
Now, my goal is to change my player movement whenever I change my position 90 degrees left or right. (As, when I press Q and my camera rotates to left, my W which should always move up left moves down right, as it should by the vector XYZ movement thingys.) I've tried several things, but haven't succeeded so far.
If you guys can help me out, would love to hear back :^)
Thanks in advance!
PS. If you need my player movement script, I can provide that as well. ;)
Comment