KhjCoroutines - ScaleChange

2014. 7. 30. 16:50프로그래밍/Coroutine

반응형
SMALL

앞서서의 알파 체인지의 경우 지정값없이 0에서 1 혹은 1에서0이 되는 코루틴이었습니다.

변수몇개만 더 추가해서 작성한다면 지정된 값에서 지정된값까지 변화하는 코루틴으로 구성하는것은 쉬운 일일것입니다.

 

알파대신 이번에는 스케일을 변화시키는 코루틴 로직을 통해서 지정값에서 지정값으로 변화시키는 문장을 작성해 봅시다.

 

<내용>

//스케일값 변환하는 코루틴을 만들어봅시다

//totalTime기간동안 img의 스케일을 crescendo면 min->max 반대는 max->min으로 조정해준다

 

public IEnumerator ScaleChange(UISprite img, bool crescendo, float minScale, float maxScale, float totalTime )
{
    yield return new WaitForEndOfFrame();
    float elapseTime = 0f;
    while(elapseTime < totalTime)
    {
        elapseTime +=Time.deltaTime;
        if(elapseTime >= totalTime) elapseTime = totalTime;
   
        if(crescendo)  

  {

       img.transform.localScale = new Vector3( minScale + (maxScale - minScale)*(elapseTime/totalTime), minScale + (maxScale -       minScale)*(elapseTime/totalTime), 1f);

  }

  else    

  {

 img.transform.localScale = new Vector3( maxScale - (maxScale - minScale)*(elapseTime/totalTime), minScale + (maxScale - minScale)*(elapseTime/totalTime), 1f);

  }  
  yield return new WaitForEndOfFrame();

    }

}

 

 

활용

StartCoroutine( KhjCoroutines.Instance.ScaleChange( img, true, 0.7f, 1f, 1f ) );

 

반응형
LIST

'프로그래밍 > Coroutine' 카테고리의 다른 글

KhjCoroutines - AniSprite  (0) 2014.08.25
KhjCoroutines - DownMove  (0) 2014.07.31
KhjCoroutines - AlphaOnOffLoop  (0) 2014.07.31
KhjCoroutines - AlphaChange  (0) 2014.07.29
코루틴 기본형태  (0) 2014.07.02