/********** Default Method **********/ void Wild_Tile_Init() { // 베이직 설정 m_map = Object.Instantiate(Resources.Load <GameObject>("Basic")); m_map.transform.parent = m_canvas.transform; float screenY = Wild_Singleton_Screen.Wild_GetInstance().Wild_GetScreenSize().y; m_map.transform.localPosition = new Vector3(0.0f, -screenY * 0.2f, 0.0f); float scale = screenY / 10.0f * 0.5f; m_map.transform.localScale = new Vector3(scale, scale, scale); // m_a_tile = new Wild_Tile[(int)Wild_Map_SIZE.X * (int)Wild_Map_SIZE.Y]; for (int y = 0; y < (int)Wild_Map_SIZE.Y; y++) { for (int x = 0; x < (int)Wild_Map_SIZE.X; x++) { // 헥스의 속성을 셋팅 m_a_tile[0] = new Wild_Tile(); m_a_tile[0].Wild_Init(x + (y * (int)Wild_Map_SIZE.Y), x, y, (int)Wild_Tile_TYPE.Wild_Tile_TYPE_GRASS, m_map); // 맵이동 범위 지정 //if(m_right < obj.transform.localPosition.x) m_right = hexPos.x; } } m_map.transform.Rotate(-45.0f, 0.0f, 0.0f); }
// void Wild_AStar_Setting() { Wild_AStar_Reset(); // 자기 위치 셋팅 { int temp = m_c_manager.Wild_FindMyTileNumber(this); m_AStar_a_data[temp].m_condition = Wild_AStar_CONDITION.OWN; m_AStar_a_data[temp].m_distance = 0; m_AStar_l_settingTemp.Add(temp); } // 산출 while (m_AStar_l_settingTemp.Count > 0) { int num = m_AStar_l_settingTemp[0]; Wild_Tile tile = m_c_manager.Wild_GetTile(num); int x = tile.Wild_GetX(); int y = tile.Wild_GetX(); int distance = m_AStar_a_data[num].m_distance; switch (y % 2) { case 0: Wild_AStar_Setting1(x, y, -1, distance); break; case 1: Wild_AStar_Setting1(x, y, 0, distance); break; } m_AStar_l_settingTemp.RemoveAt(0); } }
// 칸마다 체크 void Wild_AStar_Setting2(int _num, int _dis) { // 체크에 관련된 헥스의 정보 가져오기 Wild_Tile hex = m_c_manager.Wild_GetTile(_num); // 헥스가 지나갈 수 없는 곳인가? if (hex.Wild_IsMove()) { Wild_AStar_Data data = m_AStar_a_data[_num]; if (data.m_distance > _dis) { data.m_distance = _dis; } bool isDoing = (data.m_condition == Wild_AStar_CONDITION.NOSEARCH); if (isDoing) { Wild_Object obj = hex.Wild_GetObject(); Wild_AStar_CONDITION con = Wild_AStar_CONDITION.MOVE; if (obj != null) { switch (obj.Wild_GetType()) { case Wild_Object_TYPE.OBJECT: con = Wild_AStar_CONDITION.OBJECT; break; } } m_AStar_a_data[_num].m_condition = con; if (con == Wild_AStar_CONDITION.MOVE) { m_AStar_l_settingTemp.Add(_num); } } } else { m_AStar_a_data[_num].m_condition = Wild_AStar_CONDITION.NOTMOVE; } }