Third person view

Hey guys. I’m beginner in Unity3D. I have a custom character created in Blender3D. My problem is the camera of the character, once I start the scene the camera look like this: player hosted at ImgBB — ImgBB . I want something like third person view. How can I do that?

Hierarchy: 125437-hierarchy.png

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class CharacterMovement : MonoBehaviour {

public Transform playerCam, character, centerPoint;

private float mouseX, mouseY;
public float mouseSensitivity = 10f;
public float mouseYPosition = 1f;

private float moveFB, moveLR;
public float moveSpeed = 2f;

private float zoom;
public float zoomSpeed = 2;

public float zoomMin = -2f;
public float zoomMax = -18f;

public float rotationSpeed = 5f;

void Start() {
    zoom = -20;
}

void Update() {
    zoom += Input.GetAxis("Mouse ScrollWheel") * zoomSpeed;
    if(zoom > zoomMin) {
        zoom = zoomMin;
    }

    if(zoom < zoomMax) {
        zoom = zoomMax;
    }

    playerCam.transform.localPosition = new Vector3 (0, 0, zoom);

    if(Input.GetMouseButton(1)) {
        mouseX += Input.GetAxis("Mouse X") * mouseSensitivity;
        mouseY -= Input.GetAxis("Mouse Y") * mouseSensitivity;
    }
    
    mouseY = Mathf.Clamp(mouseY, -60f, 60f);
    playerCam.LookAt(centerPoint);
    centerPoint.localRotation = Quaternion.Euler(mouseY, mouseX, 0);

    moveFB = Input.GetAxis("Vertical") * moveSpeed;
    moveLR = Input.GetAxis("Horizontal") * moveSpeed;

    Vector3 movement = new Vector3(moveLR, 0, moveFB);
    movement = character.rotation * movement;
    character.GetComponent<CharacterController> ().Move(movement * Time.deltaTime);
    centerPoint.position = new Vector3(character.position.x, character.position.y + mouseYPosition, character.position.z);

    if (Input.GetAxis ("Vertical") > 0 | Input.GetAxis ("Vertical") < 0) {
 
        Quaternion turnAngle = Quaternion.Euler (0, centerPoint.eulerAngles.y, 0);
 
        character.rotation = Quaternion.Slerp (character.rotation, turnAngle, Time.deltaTime * rotationSpeed);
 
    }
}
}

HI, there are basically two ways:

  1. make a script yourself to control the camera exactly how you want (programming all the movement and rotations by hand with the use of your math knowledge)
  2. The easy way: use Cinemachine. Check out the Unity Manual or look for some Youtube videos . Once you get the hang of it, it’s a very powerful tool. You can get almost any camera setup without writting a single line of code.

I suggest that you go by the second way. If you are interested in knowing the basics of how to make the camera orbit and such, you should look for: 3D Transformations and Quaternions (specifically, how to rotate a vector with a quaternion and how to rotate a point around another point (a pivot point))