//------------------------------------------------ Generic Skin fades ---------------------------------------------------
void FadeInSkinEnter(CGameSkin@ _pGameSkin)
{
    CSkin@ pSkin = _pGameSkin.GetSkin();
    CColor color;
    color = pSkin.GetColor();
    color.a = 0.0f;
    pSkin.SetColor(color);
    _pGameSkin.SetVisible(true);
}

void FadeInSkinUpdate(CGameSkin@ _pGameSkin)
{
    CSkin@ pSkin = _pGameSkin.GetSkin();
    CColor color = pSkin.GetColor();
    if( pTutorial.GetTimeInScene() < pTutorial.GetSceneLength() )
    {
        color.a = Lerp(pTutorial.GetTimeInScene() / pTutorial.GetSceneLength(), 0.0f, 1.0f);
    }
    else
    {
        color.a = 1.0f;
    }
    pSkin.SetColor(color);
}

void FadeOutSkinEnter(CGameSkin@ _pGameSkin)
{
    CSkin@ pSkin = _pGameSkin.GetSkin();
    CColor color;
    color = pSkin.GetColor();
    color.a = 0.0f;
    pSkin.SetColor(color);
    _pGameSkin.SetVisible(true);
}

void FadeOutSkinUpdate(CGameSkin@ _pGameSkin)
{
    CSkin@ pSkin = _pGameSkin.GetSkin();
    CColor color = pSkin.GetColor();
    if( pTutorial.GetTimeInScene() < pTutorial.GetSceneLength() )
    {
        color.a = Lerp(pTutorial.GetTimeInScene() / pTutorial.GetSceneLength(), 1.0f, 0.0f);
    }
    else
    {
        color.a = 0.0f;
    }
    pSkin.SetColor(color);
}

void HideGameObject(CGameSkin@ _pGameSkin)
{
    _pGameSkin.SetVisible(false);
}
