コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】シンプルなバネの動きを実装できる「A minimal spring physics library for Unity」紹介

はじめに

「A minimal spring physics library for Unity」を Unity プロジェクトに導入することで
シンプルなバネの動きを実装できるようになります

使用例

using UnityEngine;

public class Example : MonoBehaviour
{
    private UnitySpring.ClosedForm.Spring m_spring;
    // private UnitySpring.ExplicitRK4.Spring m_spring;
    // private UnitySpring.SemiImplicitEuler.Spring m_spring;
    // private UnitySpring.VerletIntegration.Spring m_spring;

    private void Start()
    {
        m_spring = new()
        {
            startValue = 10,
            endValue   = 0,
            damping    = 3,
            mass       = 1,
            stiffness  = 200,
        };
    }

    private void Update()
    {
        var x = m_spring.Evaluate( Time.deltaTime );
        transform.position = new Vector3( x, 0f, 0f );
    }
}

エディタ拡張

Unity メニューの「Tools > UnitySpring > Visualizer」を押して

表示されたウィンドウで Modes を「Custom」にすることで
各パラメータにおけるバネの動きを確認できます