- Home /
Question by
ComicGames-Jared · Jan 20, 2020 at 12:21 PM ·
c#3dmovement scripttank
Trying to get Tank like movement after my camera broke my movement
I am using the cinemachine camera and after I changed the line of code from .GetAxis from Horizontal to mouse X the character moves with the camera on the x axis. (Obviously lol). I wanted to make it akin to Resident Evil 4 where the camera moves left and right a little before the character makes a 45 degree turn.
Below is the code I am using.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private CharacterController characterController;
private Animator animator;
[SerializeField]
private float forwardMoveSpeed = 3;
[SerializeField]
private float backwardsMoveSpeed = 2;
[SerializeField]
private float turnSpeed = 150f;
private void Awake()
{
characterController = GetComponent<CharacterController>();
animator = GetComponentInChildren<Animator>();
Cursor.lockState = CursorLockMode.Locked; //reccomend adding toggle
}
private void Update()
{
var horizontal = Input.GetAxis("Mouse X");
var vertical = Input.GetAxis("Vertical");
var movement = new Vector3(horizontal, 0, vertical);
animator.SetFloat("Speed", vertical);
transform.Rotate(Vector3.up, horizontal * turnSpeed * Time.deltaTime);
if (vertical != 0)
{
float moveSpeedToUse = (vertical > 0) ? forwardMoveSpeed : backwardsMoveSpeed;
characterController.SimpleMove(transform.forward * moveSpeedToUse * vertical);
}
}
}
and here is my camera controller script
using Cinemachine;
using UnityEngine;
public class CameraController : MonoBehaviour
{
private CinemachineComposer composer;
[SerializeField]
private float sensitivity = 1f;
private void Start()
{
composer = GetComponent<CinemachineVirtualCamera>().GetCinemachineComponent<CinemachineComposer>();
}
private void Update()
{
float vertical = Input.GetAxis("Mouse Y") * sensitivity;
composer.m_TrackedObjectOffset.y += vertical;
composer.m_TrackedObjectOffset.y = Mathf.Clamp(composer.m_TrackedObjectOffset.y, -10, 10);
}
}
Comment
Your answer
Follow this Question
Related Questions
How do i maintain the same speed in the air? 1 Answer
Smooth Movement with set distance 1 Answer
Movement Code not working 2 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers