Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- AIPerception
- HTTP
- 재귀
- 언리얼4
- 프로그래머스
- c++
- UMG
- 동적계획법
- 코딩테스트
- 다이나믹프로그래밍
- ue4macro
- 유니티
- server
- 알고리즘
- uproperty
- Unity
- Stimuli
- EffectiveC++
- DP
- 문자열
- 코테
- 나나이트
- UnReal
- 코테연습
- UE4
- Widget
- blueprint
- UE5
- 언리얼
- dfs
Archives
- Today
- Total
공부 기록
[Unity] kinematic 물체의 속도 측정 본문
오늘 해 볼 것은 Kinematic 물체의 속도를 측정하는 방법이다.
유니티에서는 Rigidbody 컴포넌트를 적용하면 자체적으로 속도를 측정해주지만 isKinematic 설정을 활성화한 물체는 물리연산이 적용되지 않아 속도를 직접 구해야 한다. 속도공식 (V=S/T) 을 이용하여 코드로 속도를 측정해보았다.
private Vector3 oldPosition;
private Vector3 currentPosition;
private double velocity;
void Start()
{
oldPosition = transform.position;
}
void Update()
{
currentPosition = transform.position;
var dis = (currentPosition - oldPosition);
var distance = Math.Sqrt(Math.Pow(dis.x,2)+Math.Pow(dis.y,2)+Math.Pow(dis.z,2));
velocity = distance / Time.deltaTime;
oldPosition = currentPosition;
}
유니티는 프레임 단위로 Update 함수가 호출되므로 S는 물체의 이전 프레임 위치와 현재 프레임 위치 사이의 거리, T는 프레임 단위 시간인 deltaTime으로 설정하고 계산해주었다. 나는 3D작업을 하고있어서 z축 포지션 값까지 고려했는데 2D라면 x,y축 값만 계산하면 될 듯 하다.
'Unity' 카테고리의 다른 글
[Unity 3D] Game view 에서 오브젝트가 보이지 않는 현상 (0) | 2021.08.11 |
---|---|
[Unity 3D] Wheel collider 보이지 않는 현상 (0) | 2021.08.06 |
[Unity 3D] Configurable joint - 줄에 매달린 흔들림 구현 (0) | 2021.02.20 |
[Unity] 유니티 애니메이션 실행 중 특정 함수, 이벤트 실행하기 (0) | 2021.02.20 |
[Unity 3D] 유니티 오브젝트 충돌 이벤트 처리 (0) | 2020.12.02 |
Comments