zoukankan      html  css  js  c++  java
  • 实现相机平滑跟随物体移动

      有时候我们在做第三人称游戏的时候,想让相机平滑的跟随物体移动,下面这些代码就能很快达到这个效果

        

    using UnityEngine;
    using System.Collections;
    
    public class CameraMover : MonoBehaviour 
    {
        public Transform follow;//目标的tansform
        public float distanceAway = 5.0f;//表示距离目标后方的距离
        public float distanceUp=2.0f;//目标上方的高度
        public float smooth = 1.0f;//插值系数
        private Vector3 camPosition;//目标的位置
        void LateUpdate()
        {
            //计算出相机应该在的位置
            camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway;
            //插值到相机应该的位置
            transform.position=Vector3.Lerp(transform.position,camPosition,smooth*Time.deltaTime);
    
            //一个tranform中的函数,用于使一个物体正对着目标
            transform.LookAt(follow);//理解成看着目标
    
        }
    }

       这里插入一张图便于理解

      

      如果想改变相机的朝向,可以通过直接改变

      

    camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway;句中的follow.forward的值,

    比如说可以把
    public float distanceAway = 5.0f;改成-5.0f则使摄像机正对着物体。如果想从侧边观看,则改变为follow.right即可。
  • 相关阅读:
    centos 修改语言、时区
    去除 ufeff
    Docker介绍及使用
    消息队列
    数据结构与算法
    Haystack
    Python面向对象之魔术方法
    关于Redis处理高并发
    Redis
    RESTful规范
  • 原文地址:https://www.cnblogs.com/springword/p/6009829.html
Copyright © 2011-2022 走看看