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即可。
  • 相关阅读:
    idea Ctrl+Alt+向下箭头 复制不起作用问题解决
    @Data 注解使用
    idea class类增加注释
    mysql 固定用户赋值数据库权限
    springboot logback 详细配置
    gitblit 增加ssh key
    uniapp内嵌H5页面和uniapp页面相互传值
    博客搬家
    反编译,java字节流 ,wirshark抓包,php转换中文
    charles 双向抓包
  • 原文地址:https://www.cnblogs.com/springword/p/6009829.html
Copyright © 2011-2022 走看看