public IEnumerator MoveCorutine() { while (true) { yield return(new WaitForSeconds(Random.Range(0.5f, 1.0f) * MoveDelaySec)); if (Random.Range(0, 11) > 0) { MoveDirection = Vector3.zero; float random = Random.Range(0, 2) * 2 - 1; Vector3 prevMoveDirection = MoveDirection; if (Random.Range(0, 2) > 0) { MoveDirection = new Vector3(random, prevMoveDirection.y, prevMoveDirection.z); } else { MoveDirection = new Vector3(prevMoveDirection.x, random, prevMoveDirection.z); } if (!MoveAction.Move(MoveDirection)) { AttackAction.Attack(MoveDirection); } } } }
private void MoveInput() { Vector3 direction = Vector3.zero; if (Input.GetKeyDown(KeyCode.W)) { direction.y += 1.0f; } else if (Input.GetKeyDown(KeyCode.S)) { direction.y -= 1.0f; } else if (Input.GetKeyDown(KeyCode.A)) { direction.x -= 1.0f; } else if (Input.GetKeyDown(KeyCode.D)) { direction.x += 1.0f; if (transform.localScale.x < 0.0f) { GetComponent <Animator>(). transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z); } } else if (Input.GetKeyDown(KeyCode.Q)) { SetMoveTime(_rollTimeSec); direction.x = -1.0f; direction.y = 1.0f; } else if (Input.GetKeyDown(KeyCode.Z)) { SetMoveTime(_rollTimeSec); direction.x = -1.0f; direction.y = -1.0f; } else if (Input.GetKeyDown(KeyCode.E)) { SetMoveTime(_rollTimeSec); direction.x = 1.0f; direction.y = 1.0f; } else if (Input.GetKeyDown(KeyCode.C)) { SetMoveTime(_rollTimeSec); direction.x = 1.0f; direction.y = -1.0f; } if (direction != Vector3.zero) { bool moveResult = false; bool do_backstep = false; if (IsLockAction() && LockingAction.GetType() == typeof(AttackAction)) { switch (Utility.VecToDir(MoveDirection)) { case BaseAction.NormalDir.BESIDE: if (GetSpriteRenderer().flipX) { if (direction.x > 0.0f) { do_backstep = true; } } else { if (direction.x < 0.0f) { do_backstep = true; } } break; case BaseAction.NormalDir.TOP: if (direction.y < 0.0f) { do_backstep = true; } break; case BaseAction.NormalDir.DOWN: if (direction.y > 0.0f) { do_backstep = true; } break; } } if (direction.x != 0 && direction.y != 0) { moveResult = RollAction.Move(direction); } else { if (do_backstep) { moveResult = BackStepAction.Move(direction); } else { moveResult = MoveAction.Move(direction); } } } if (Input.GetMouseButtonDown(0)) { direction = Utility.GetMouseWorldPosition() - transform.position; direction = Utility.NormalizeIntVector(direction); AttackAction.Attack(direction); } }