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

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Mathf.SmoothDampAngle

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

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

パラメーター

current 現在位置
target 目的地
currentVelocity 現在の速度。この値は関数が呼び出されるたびに変更されます。
smoothTime target へ到達するまでのおおよその時間。値が小さいほど、target に速く到達します。
maxSpeed オプションとして、最大速度を制限することができます。
deltaTime この関数が最後に呼び出されてからの経過時間。デフォルトは Time.deltaTime 変数。

説明

目標とする角度に向けて徐々に時間をかけて角度を変更します。度単位で指定します。

値はバネとダンパーのような関数で滑らかにされます。関数はどのような種類の値、位置、色、スカラーも滑らかにすることができます。 もっとも一般的な使い方はカメラの追従をスムーズにするために使います。

//A simple smooth follow camera,
// that follows the targets forward direction

var target : Transform; var smooth = 0.3; var distance = 5.0; private var yVelocity = 0.0;

function Update () { // Damp angle from current y-angle towards target y-angle var yAngle : float = Mathf.SmoothDampAngle(transform.eulerAngles.y, target.eulerAngles.y, yVelocity, smooth); // Position at the target var position : Vector3 = target.position; // Then offset by distance behind the new angle position += Quaternion.Euler(0, yAngle, 0) * Vector3 (0, 0, -distance); // Apply the position transform.position = position;

// Look at the target transform.LookAt(target); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform target; public float smooth = 0.3F; public float distance = 5.0F; private float yVelocity = 0.0F; void Update() { float yAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y, target.eulerAngles.y, ref yVelocity, smooth); Vector3 position = target.position; position += Quaternion.Euler(0, yAngle, 0) * new Vector3(0, 0, -distance); transform.position = position; transform.LookAt(target); } }