Unity中实现人物相机跟随,镜头旋转

本文介绍了在Unity中实现角色相机跟随和镜头旋转的方法。通过挂载MoveController.cs脚本到角色上,以及在相机上设置相应逻辑,可以实现两种旋转方式:角色旋转和背景旋转。在角色旋转时保持相机位置,背景旋转时根据方向锁定相机的特定轴。通过在Update中更新相机的offset,并在不同旋转操作中改变offset的相应坐标,从而达到灵活的相机跟随与镜头旋转效果。
摘要由CSDN通过智能技术生成

参考自:这里
挂在人物上的:MoveController.cs

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

public class MoveController : MonoBehaviour {

    public float speed = 6.0F; //人物移动速度
    public float jumpSpeed = 5.0F; 
    public float gravity = 5.0F;
    private Vector3 moveDirection = Vector3.zero;

    public float rotatinDamping = 4;    //人物旋转的速度
    public float mouse1RotateDamping = 4;

    public bool cameraIsRotate = true;      //判断相机是否跟随人物旋转(点击鼠标左键可观看角色)


    private float backgroundRotateValue;                //点击鼠标右键,存储鼠标X方向位移

    float currentOnClickMouse1AngleY = 0;     //鼠标右击时人物当前的Y轴度数
    float currentCameraAngleY = 0;           //鼠标左击时相机当前的Y轴度数


    public GameObject cam;                  //人物后面的相机
    private CharacterController characterContro;   //角色控制器组件
    // Use this for initialization
    void Start()
    {
        characterContro = this.GetComponent<CharacterController>();
        cam = GameObject.Find("Main Camera");

    }

    // Update is called once per frame
    void Update()
    {
        move();
        mouseControllerRotation();
    }
    void move()
    {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded)
        {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirect
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值