void Awake()
    {
        Instance = this;

        Log.Init(Debug.Log);

        Dictionary <int, DishSDS> dic = StaticData.GetDic <DishSDS>();

        IEnumerator <DishSDS> enumerator = dic.Values.GetEnumerator();

        while (enumerator.MoveNext())
        {
            DishSDS sds = enumerator.Current;

            float time = sds.prepareTime + sds.cookTime + sds.optimizeTime;

            if (time > MAX_TIME)
            {
                MAX_TIME = time;
            }
        }

        TICK_SPAN = 1.0f / CookConst.TICK_NUM_PER_SECOND;

        Cook_client.Init(dic, StaticData.GetDic <ResultSDS>());

        client = new Cook_client();

        client.Init(this);

        GameObject go = GameObjectFactory.Instance.GetGameObject("Assets/Resource/prefab/playerDataUnit.prefab", null);

        go.transform.SetParent(mPlayerDataContainer, false);

        mPlayerData = go.GetComponent <PlayerDataUnit>();

        mPlayerData.Init(this, true);

        go = GameObjectFactory.Instance.GetGameObject("Assets/Resource/prefab/playerDataUnit.prefab", null);

        go.transform.SetParent(oPlayerDataContainer, false);

        oPlayerData = go.GetComponent <PlayerDataUnit>();

        oPlayerData.Init(this, false);

        go = GameObjectFactory.Instance.GetGameObject("Assets/Resource/prefab/requirementContainer.prefab", null);

        go.transform.SetParent(requirementContainerContainer, false);

        requirementContainer = go.GetComponent <RequirementContainer>();

        requirementContainer.Init(this, client.GetRequirement());

        bg.Init(this);

        gameObject.SetActive(false);
    }