Unity. Mathf.SmoothDampAngle()

μ΅œλŒ€ 1 λΆ„ μ†Œμš”

🌟 Mathf.SmoothDampAngle()

μ‹œκ°„μ΄ 지남에 따라 λͺ©ν‘œ κ°λ„λ‘œ ν–₯ν•˜λŠ” ν•¨μˆ˜λ‹€.

🌟 μ‚¬μš©λ²•

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);
    }
}

μœ λ‹ˆν‹° 곡식 λ¬Έμ„œμ—μ„œ κ°€μ Έμ˜΄!

SmoothDampAngle의 μΈμžλŠ” ν˜„μž¬ μœ„μΉ˜κ°’, λ„λ‹¬ν•˜λ €λŠ” μœ„μΉ˜, ν˜„μž¬ 속도, νƒ€κ²Ÿμ— λ„μ°©ν•˜λŠ” μ‹œκ°„, μ„ νƒμ μœΌλ‘œ μ΅œλŒ€ 속도와 κ²½κ³Ό μ‹œκ°„μ΄ μžˆλ‹€. μ•žμ˜ λ„€ 개만 μ‹ κ²½μ“°λ©΄ 될듯!

float yAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y, target.eulerAngles.y, ref yVelocity, smooth);을 보면 transform.eulerAngles.yμ—μ„œ target.eulerAngles.y이 κ°λ„λ‘œ smooth μ‹œκ°„ λ™μ•ˆ λ³€κ²½λ˜λŠ” κ±Έ μ•Œ 수 μžˆλ‹€! λ°‘μ˜ μ½”λ“œλŠ” 잘 λͺ¨λ₯΄κ² μŒ

λŒ“κΈ€λ‚¨κΈ°κΈ°