[함수] 유니티 함수 Vector3.Lerp에 대해서 알아보자.
Unity3D 2016. 4. 20. 23:20네 되는 소스입니다
Recent Trackback
using UnityEngine;
using System.Collections;
public class LerpTest : MonoBehaviour {
//시작위치 끝 위치
public Transform startMarker;
public Transform endMarker;
public float speed = 10.0F;
private float startTime;
private float journeyLength;
void Start()
{
startTime = Time.time;
journeyLength = Vector3.Distance(startMarker.position, endMarker.position);//시작과끝 위치 거리
}
void Update()
{
//두점 사이의 거리가 10일때
float distCovered = (Time.time - startTime) * speed; //속력 v = m/s 1초에 10움직임 한프레임당 1움직인다고하면
float fracJourney = distCovered / journeyLength;// 속력 / 길이 = m/s / m = 1/s 시간 fracJourney = 0.1f
transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney); //
}
}
유니티 함수 Lerp에 대해서 알아봅시다.
Lerp는 두 벡터 사이에 시간에 따른 위치를 구하는 함수입니다.
만약 startMarker position 은 (-5,0,0 )이고 endMarker 은 (5,0,0) 일때
위의 fracJourney 가 0.5초 일때 정확히 0,0,0 을 반환하게 되며, 0.1초 일때는 두점 사이의 거리가 10이므로 1,0,0 값을 반환 하게 됩니다.
fracJourncey 가 1.0f 일때나 그 이상일때는 endMarker 의 위치(5,0,0)를 반환합니다.
만약 0.0f이거나 그 이하일때는 startMarker의 위치(-5,0,0)를 반환하게 됩니다.
'Unity3D' 카테고리의 다른 글
Precedence and Order of Evaluation & explicit (C# Reference) (0) | 2016.05.12 |
---|---|
해상도 설정 (0) | 2016.04.30 |
그래픽 최적화 어디까지 가봤니? (0) | 2016.03.18 |
Class 및 Class instance 의 기본 표기 형식 (0) | 2016.03.09 |
CookingSaga Framework Architecture (0) | 2016.03.09 |