void Awake()
    {
        //hide message text
		gameOverText.gameObject.SetActive(false);
		isGameOver = false;
        
        //get manager
        mItemManager = GetComponent<ItemManager>();
        mMonsterManager = GetComponent<MonsterManager>();
        mMapManager = GetComponent<MapManager>();

        //get character setting
		mSetUp = (SetUpManager)FindObjectOfType<SetUpManager> ();
		mPlayerData = new List<CharacterSetupManager>(mSetUp.transform.GetComponentsInChildren<CharacterSetupManager>());
		PlayerCount = mPlayerData.Count;
		PlayerLeft = PlayerCount;
		Debug.Log ("playerCount: " + PlayerCount);

        //get map setting
		mMapManager.setMapList (mSetUp.mapList);

        //build player list
		mPlayerList = new List<Damagable> ();
        mPlayerPositionIndex = new List<int>();

        //build item list
        mItemOnMapList = new List<Item>();
        mItemOnMapPositionIndex = new List<int>();
        mItemSpawnCounters = new List<float>();

        //build monster list
        //....

        mGameStage = GameStage.Init;
	}