반응형
public AnimationCurve myCurve;
public GameObject animationObject;
public float duration;
void zoomIn()
{
StartCoroutine(MyAnimation(animationObject, .2f, .5f, duration));
}
void ZoomOut()
{
StartCoroutine(MyAnimation(animationObject, .5f, .2f, duration));
}
public IEnumerator MyAnimation(GameObject animationObject, float A, float B, float duration)
{
float elapsedTime = 0;
while (elapsedTime < duration)
{
elapsedTime += Time.deltaTime;
var per = elapsedTime / duration;
var startValue = A < B ? A : B;
var process = A < B ? per : 1 - per; // 커브 뒤집는용
animationObject.transform.localScale = Vector3.one * (startValue + Mathf.Abs(B - A) * myCurve.Evaluate(process));
yield return new WaitForEndOfFrame();
}
}
또잉 하는 애니메이션을 그래프를 이용해서 직관적인 조정 가능
반응형
'programming | development > unity' 카테고리의 다른 글
삼각함수로 원 그리기 (0) | 2022.07.15 |
---|---|
Unity + Realsense F200 (0) | 2022.06.14 |
HDRP Raytracing 세팅 (0) | 2022.03.14 |
Unity + OpenCV OpticalFlowPyrLK + Visual Effect Graph (0) | 2022.03.10 |
Component Inspector 항목들 (0) | 2022.02.26 |
댓글