Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Vector3.SmoothDamp

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える
public static function SmoothDamp(current: Vector3, target: Vector3, ref currentVelocity: Vector3, smoothTime: float, maxSpeed: float = Mathf.Infinity, deltaTime: float = Time.deltaTime): Vector3;
public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);

Parameters

current 現在の位置
target 目的地として向かう位置
currentVelocity 現在の速度。この値は関数が呼び出されるごとに変更されていきます
smoothTime 目的地に到達するのにかかる時間。値が小さいほど早く目的地に到達します
maxSpeed 最高速度
deltaTime この関数を呼び出してからの経過時間。デフォルトでは Update 関数内で実行されるのを考慮して Time.deltaTime

Description

目的地に向かって時間の経過とともに徐々にベクトルを変化させます

ベクトルはスプリングとダンパーのような機能によってスムーズ化されるので目的地を行き過ぎてしまうことはありません。 もっとも一般的な使い方はカメラの追従をスムーズにするために使います。

	// Smooth towards the target

var target : Transform; var smoothTime = 0.3; private var velocity = Vector3.zero; function Update () { // Define a target position above and behind the target transform var targetPosition : Vector3 = target.TransformPoint(Vector3(0, 5, -10)); // Smoothly move the camera towards that target position transform.position = Vector3.SmoothDamp(transform.position, targetPosition, velocity, smoothTime); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform target; public float smoothTime = 0.3F; private Vector3 velocity = Vector3.zero; void Update() { Vector3 targetPosition = target.TransformPoint(new Vector3(0, 5, -10)); transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime); } }