言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

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, currentVelocity: Vector3, smoothTime: float, maxSpeed: float = Mathf.Infinity, deltaTime: float = Time.deltaTime): Vector3;
public static Vector3 SmoothDamp(Vector3 current, Vector3 target, Vector3 currentVelocity, float smoothTime, float maxSpeed = Mathf.Infinity, float deltaTime = Time.deltaTime);
public static def SmoothDamp(current as Vector3, target as Vector3, currentVelocity as Vector3, smoothTime as float, maxSpeed as float = Mathf.Infinity, deltaTime as float = Time.deltaTime) as Vector3

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);
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public target as Transform

	public smoothTime as float = 0.3F

	private velocity as Vector3 = Vector3.zero

	def Update() as void:
		targetPosition as Vector3 = target.TransformPoint(Vector3(0, 5, -10))
		transform.position = Vector3.SmoothDamp(transform.position, targetPosition, , smoothTime)