I want to make my players Y rotation rotate with my Cameras X rotation(Third Pearson Camera). What did I do wrong?
My Camera Script:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class ThirdPearsonCamera : MonoBehaviour { private const float Y_ANGLE_MIN = 0.0f; private const float Y_ANGLE_MAX = 50.0f;
public Transform lookAt;
public Transform camTransform;
public float distance = 12.0f;
public float currentX = 0.0f;
public float currentY = 13.0f;
private float sensitivityX = 4.0f;
private float sensitivityY = 1.0f;
private void Start()
{
camTransform = transform;
}
private void Update()
{
currentX += Input.GetAxis("Mouse X");
currentY += Input.GetAxis("Mouse Y");
currentY = Mathf.Clamp(currentY, Y_ANGLE_MIN, Y_ANGLE_MAX);
}
private void LateUpdate()
{
Vector3 dir = new Vector3(0, 0, -distance);
Quaternion rotation = Quaternion.Euler(currentY, currentX, 0);
camTransform.position = lookAt.position + rotation * dir;
camTransform.LookAt(lookAt.position);
}
}
My Moving Script:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerMove : MonoBehaviour { public float moveSpeed;
// Use this for initialization
void Start ()
{
moveSpeed = 10f;
}
// Update is called once per frame
void Update ()
{
transform.Translate (moveSpeed*Input.GetAxis ("Horizontal") * Time.deltaTime, 0f, moveSpeed*Input.GetAxis ("Vertical") * Time.deltaTime);
transform.FindChild ("Main Camera").transform.localRotation = Quaternion.Euler(0,Camera.main.transform.localRotation.x,0);
}
}
If you know anything I can do to make it work please let me know :)
Comment