/// <summary> /// 현재 마우스 위치에 선택된 타일을 반환한다. /// </summary> private SquareTile SelectedTile() { Vector3 worldPosition = m_Camera.ScreenToWorldPoint(Input.mousePosition); Vector3Int cellPosition = m_Tilemap.WorldToCell(worldPosition); // 예외 처리 if (cellPosition.x >= m_Bounds.xMax || cellPosition.x < m_Bounds.xMin) { return(null); } if (cellPosition.y >= m_Bounds.yMax || cellPosition.y < m_Bounds.yMin) { return(null); } SquareTile tile = m_Tilemap.GetTile <SquareTile>(cellPosition); tile.m_Position = cellPosition; Debug.Log("selected tile = " + tile.m_Position + " : type = " + tile.m_State.m_State); UnitKnight knight = UnitManager.GetReadyToMovePlayer(); if (knight != null) { tile.m_State.SetUnitPlacedTile(knight.m_Position); } tile.m_State.OnClicked(); return(tile); }
/// <summary> /// 단위 테스트를 위해 하나의 유닛만 생성한다. /// </summary> private static void UnitTestUnitKnight() { UnitKnight knight = UnitFactory.CreatePlayerUnits(Vector3Int.zero); m_PlayerUnits.Add(knight); m_Units.Add(knight); }
public override void OnClicked() { base.OnClicked(); UnitKnight knight = UnitManager.GetReadyToMovePlayer(); if (knight != null) { knight.Move(m_Position); } }
/// <summary> /// 플레이어가 조작 가능한 유닛들을 생성한다. /// </summary> public static UnitKnight CreatePlayerUnits(Vector3Int _position) { GameObject prefab = Resources.Load("Prefabs/Knight") as GameObject; GameObject unitParent = GameObject.Find("UnitParent"); GameObject playerUnit = Lean.LeanPool.Spawn(prefab, Vector3.zero, Quaternion.identity, unitParent.transform); UnitKnight knight = playerUnit.GetComponent <UnitKnight>(); knight.SetPosition(_position, true); return(knight); }
public override void OnClicked() { base.OnClicked(); // 선택된 타일로 설정 SquareTile tile = SquareTileFactory.CreateSelected(m_Position); Map.instance.m_TilemapHighlight.m_Tilemap.SetTile(m_Position, tile); // 이동 준비 상태의 플레이어가 있으면 대기 상태로 되돌린다 UnitKnight knight = UnitManager.GetReadyToMovePlayer(); if (knight != null) { knight.SetToIdle(); } Map.instance.m_TilemapController.ResetAllTiles(); Map.instance.m_TilemapController.SetAllUnitPlacedTiles(); }