Unity3D 基础——使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果

使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果,让物体的移动不是那么僵硬,而是做减速的缓冲效果。将以下的脚本绑定在相机上,然后设定好 target 目标对象,即可看到相机的缓动效果。通过设定 smoothTime 的值,可以调节缓动效果的持续时间。

Mathf-SmoothDamp - Unity 脚本 APIhttps://docs.unity.cn/cn/current/ScriptReference/Mathf.SmoothDamp.html

Mathf.SmoothDamp

public static float SmoothDamp (float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed= Mathf.Infinity, float deltaTime= Time.deltaTime);

参数

|-----------------|--------------------------------------|
| current | 当前位置。 |
| target | 尝试达到的目标。 |
| currentVelocity | 当前速度,此值由函数在每次调用时进行修改。 |
| smoothTime | 达到目标所需的近似时间。值越小,达到目标的速度越快。 |
| maxSpeed | 可以选择允许限制最大速度。 |
| deltaTime | 自上次调用此函数以来的时间。默认情况下为 Time.deltaTime。 |

1.创建 SmoothDamp 脚本

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SmoothDamp : MonoBehaviour
{
    public Transform target;
    public float smoothTime = 0.3F;
    private float yVelocity = 0.0F;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //缓动 y 轴上的位置
        float newPosition = Mathf.SmoothDamp(transform.position.y, target.position.y, ref yVelocity, smoothTime);
        transform.position = new Vector3(transform.position.x, newPosition, transform.position.z);
    }
}

2.绑定对象

将 SmoothDamp 脚本添加到 Main Camera 对象上;然后设置 Target 参数对象,调节 Target 对象的位置使其与 Main Camera 对象的高度不一样。

3.播放

单机播放按钮,可以看到主相机的高度缓缓移动到 Target 的高度。

相关推荐
躺下睡觉~9 小时前
Unity-Transform类-父子关系
java·unity·游戏引擎
躺下睡觉~9 小时前
Unity-Transform类-缩放和看向
unity·游戏引擎
君莫愁。11 小时前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
咩咩觉主12 小时前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
蓝裕安15 小时前
伪工厂模式制造敌人
开发语言·unity·游戏引擎
谢泽浩19 小时前
Unity 给模型贴上照片
unity·游戏引擎
z2014z19 小时前
Unity Resource System 优化笔记
unity·游戏引擎
王维志19 小时前
Unity 高亮插件HighlightPlus介绍
unity·游戏引擎
zaizai100720 小时前
我的demo保卫萝卜中的技术要点
unity
菌菌巧乐兹21 小时前
Unity 百度AI实现无绿幕拍照抠像功能(详解版)
人工智能·百度·unity