Unity第一人稱鏡頭模板

ComputerEngine發表於2024-03-31
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCam : MonoBehaviour
{
    public float sensX;
    public float sensY;
    [Range(0, 1)]
    public float smoothness = 1;

    public Transform orien;

    float xRotation;
    float yRotation;

    private void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }

    private void Update()
    {
        float mouseX = Input.GetAxisRaw("Mouse X") * Time.deltaTime * sensX;
        float mouseY = Input.GetAxisRaw("Mouse Y") * Time.deltaTime * sensY;

        yRotation += mouseX;
        xRotation -= mouseY;
        xRotation = Mathf.Clamp(xRotation, -90f, 90f);
        Quaternion nextQua = Quaternion.Euler(xRotation, yRotation, 0);
        transform.rotation = Quaternion.Lerp(transform.rotation, nextQua, smoothness);
        orien.rotation = Quaternion.Euler(0, yRotation, 0);
    }
}

內容解釋:

​ 該指令碼需要掛載在一個空物體上,然後空物體下再掛載相機。

​ orien用於傳輸Y方向,也就是人物面朝的方向。這樣就可以方便處理人物朝向問題。

相關文章