使用 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 脚本
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 的高度。
文章来源:https://www.toymoban.com/news/detail-794929.html
文章来源地址https://www.toymoban.com/news/detail-794929.html
到了这里,关于Unity3D 基础——使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!