void ChangeMarkPoint(Defines.Direction dir) { foreach (var mark in m_listfMarkPoints) { mark.GetComponent <SelectingMarkBehavior>().SetPosition(dir); } }
Defines.Position GenerateDirPosition(Defines.Direction dir) { Defines.Position returnPos = m_position; switch (dir) { case Defines.Direction.Left: break; case Defines.Direction.Right: returnPos.posX = -m_position.posX; returnPos.posY = m_position.posY; break; case Defines.Direction.Up: returnPos.posX = m_position.posY; returnPos.posY = -m_position.posX; break; case Defines.Direction.Down: returnPos.posX = m_position.posY; returnPos.posY = m_position.posX; break; } return(returnPos); }
public void SetPosition(Defines.Direction dir) { m_position = m_positions[(int)dir]; if (Managers.Board.ChkBoundary(m_position) == false) { gameObject.SetActive(false); return; } gameObject.SetActive(true); Vector2 boardPos = Managers.Board.BoardPosToWorldPos(m_position); transform.position = boardPos + new Vector2(0, 1.25f); }
public override void Behavior() { int dis = (int)ChkDistanceFromPlayer(); // 거리가 2가 넘으면 이동명령 if (dis > 2) { Defines.Direction dir = MovingDirection(ChkPositionFromPlayer()); Debug.Log(dir); m_controller.CharacterMove(m_controller.Position.PositionForDir(dir)); return; } GameObject.Instantiate(m_cannonBall, m_cannon.transform); }
public override void Behavior() { int dis = (int)ChkDistanceFromPlayer(); // 거리가 1이 넘으면 이동명령 if (dis > 1) { Defines.Direction dir = MovingDirection(ChkPositionFromPlayer()); Debug.Log(dir); m_controller.CharacterMove(m_controller.Position.PositionForDir(dir)); return; } m_controller.AttackOtherCharacter(Managers.Object.Player); }
void ChkMarkPointDir() { Defines.Direction targetDir = Defines.Direction.Left; Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector3 playerPos = Managers.Object.Player.position; Vector3 targetPos = playerPos - mousePos; targetPos.x = targetPos.x >= 0 ? targetPos.x : -targetPos.x; targetPos.y = targetPos.y >= 0 ? targetPos.y : -targetPos.y; if (targetPos.x >= targetPos.y) // 좌, 우 { if (playerPos.x - mousePos.x >= 0) { targetDir = Defines.Direction.Left; } else { targetDir = Defines.Direction.Right; } } else // 상, 하 { if (playerPos.y - mousePos.y <= 0) { targetDir = Defines.Direction.Up; } else { targetDir = Defines.Direction.Down; } } ChangeMarkPoint(targetDir); }