//start the process of fading in public void Activate() { if (slideState < eSlideState.Opening) { slideState = eSlideState.Opening; } }
//start the process of fading out public void Deactivate() { if (slideState > eSlideState.Closing) { slideState = eSlideState.Closing; } }
public void ForceState(eSlideState new_state) { slideState.SetState(new_state); switch(slideState.CurrentState) { case eSlideState.Closed: Init(); break; case eSlideState.Opened: curPos = targetPos; break; } }
public void Update() { switch (slideState) { //if menu is opening: Update position, determine transparency and change state when done case eSlideState.Opening: switch (slideInDirection) { case eSlideDirection.Up: curPos.y -= slideSpeed * Time.deltaTime; if (curPos.y <= targetPos.y) { curPos.y = targetPos.y; } break; case eSlideDirection.Down: curPos.y += slideSpeed * Time.deltaTime; if (curPos.y >= targetPos.y) { curPos.y = targetPos.y; } break; case eSlideDirection.Right: curPos.x += slideSpeed * Time.deltaTime; if (curPos.x >= targetPos.x) { curPos.x = targetPos.x; } break; case eSlideDirection.Left: curPos.x -= slideSpeed * Time.deltaTime; if (curPos.x <= targetPos.x) { curPos.x = targetPos.x; } break; } DetermineAlpha(); if (alpha == 1) { slideState = eSlideState.Open; } break; //if the menu is closing: update the position, determine transparency and change state when done case eSlideState.Closing: switch (slideOutDirection) { case eSlideDirection.Up: curPos.y -= slideSpeed * Time.deltaTime; break; case eSlideDirection.Down: curPos.y += slideSpeed * Time.deltaTime; break; case eSlideDirection.Right: curPos.x += slideSpeed * Time.deltaTime; break; case eSlideDirection.Left: curPos.x -= slideSpeed * Time.deltaTime; break; } DetermineAlpha(); if (alpha == 0) { slideState = eSlideState.Closed; Hide(); } break; } }