Question by
ChrisAnderson · Nov 06, 2017 at 11:28 PM ·
rotationmovementplayer
Third person Character can't move in rotated direction
I've been working on a third person controller and so far it's working pretty well, but I've noticed that if the player is rotated he won't move forward in the rotation direction. I've researched this for a while and can't find a solution. This is my script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WalkerController : MonoBehaviour
{
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
}
public Animator anim;
public float speed;
public float turnspeed;
// Update is called once per frame
void Update () {
{
if (Input.GetKey("w")) //Move forward
{
anim.SetBool("walk", true);
Vector3 pos = transform.position;
Debug.Log("Walking");
transform.position += Vector3.forward * Time.deltaTime * speed;
}
else
{
anim.SetBool("walk", false);
}
}
{
if (Input.GetKey("s")) //Move backward
{
anim.SetBool("walkback", true);
Vector3 pos = transform.position;
Debug.Log("Walking Backwards");
transform.position -= Vector3.forward * Time.deltaTime * speed;
}
else
{
anim.SetBool("walkback", false);
}
}
{
if (Input.GetKey("a")) //Turn left
{
//transform.Translate(Vector3.forward * speed * Time.deltaTime);
transform.Rotate(Vector3.down, 90 * Time.deltaTime * turnspeed); //for some reason using Vector3.left or Vector3.right makes the player turn up and down, but the reverse turns them left/right.
//transform.Rotate(0, 90, 0);
}
}
{
if (Input.GetKey("d")) //Turn left
{
//transform.Translate(Vector3.forward * speed * Time.deltaTime);
transform.Rotate(Vector3.up, 90 * Time.deltaTime * turnspeed); //for some reason using Vector3.left or Vector3.right makes the player turn up and down, but the reverse turns them left/right.
//transform.Rotate(0, 90, 0);
}
}
}
}
Any help is appreciated, as this has me stumped personally (I'm relatively new to coding).
Comment
Your answer
Follow this Question
Related Questions
Some problems with handmade basic player controller 0 Answers
How to make character rotate in direction of movement? 1 Answer
How can I make the camera not overreach a limit of rotation one axis. 0 Answers
[C#] Rotate player to camera forward look 0 Answers
Make character face movement direction 0 Answers