본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] 리지드바디 없이 위치값으로 속도 얻기

728x90
반응형

1. 소스

리지드바디(Rididbody) 없이 위치 값으로 속도를 얻는 코드입니다.

 

멤버 변수
private Vector3 m_LastPosition;

 

메서드
float GetSpeed()
{
    float speed = (((transform.position - m_LastPosition).magnitude) / Time.deltaTime);
    m_LastPosition = transform.position;

    return speed;
}

 

2. 소스

속도값을 m/s와 km/h 두 개로 화면에 출력합니다.

유니티에서 사용되는 단위는 m/s이지만, 자동차의 경우 km/h를 즐겨 사용하기 때문에,

km/h = m/s * 3.6f로 계산하여 출력하였습니다.

 

using UnityEngine; 
using UnityEngine.UI; 

public class DemoGetSpeed : MonoBehaviour 
{ 
    private Vector3 m_LastPosition; 
    public float m_Speed; 
    public Text m_MeterPerSecond, m_KilometersPerHour; 

    void FixedUpdate() 
    { 
        m_Speed = GetSpeed(); 
        m_MeterPerSecond.text = string.Format("{0:00.00} m/s", m_Speed); 
        m_KilometersPerHour.text = string.Format("{0:00.00} km/h", m_Speed * 3.6f); 
    } 

    float GetSpeed() 
    { 
        float speed = (((transform.position - m_LastPosition).magnitude) / Time.deltaTime); 
        m_LastPosition = transform.position; 

        return speed; 
    } 
}

 

3. 데모

 

 

728x90
반응형