void UpdateMove() { if (OnGroundChecker.Check(capCollider)) { // 足場がある時は移動 anim.SetInteger("State", (int)AnimType.Walk); // 足場による反転チェック Vector3 offset = footOffset; if (spRenderer.flipX) { offset.x = -offset.x; } var footPos = transform.position + offset; var hitCount = Physics2D.RaycastNonAlloc( footPos, Vector2.down, hits, footCheckDistance, LayerMask.GetMask("Map")); if (hitCount == 0) { spRenderer.flipX = !spRenderer.flipX; } UpdateVelocity(); } else { // 足場がない時は、アニメをStandに変更して慣性移動 anim.SetInteger("State", (int)AnimType.Stand); } }
void FixedUpdate() { if (!CanMove) { if (GameManager.state == GameManager.StateType.Game) { rb.velocity = Vector2.zero; } else if (GameManager.state == GameManager.StateType.Clear) { anim.SetInteger("State", (int)AnimType.Idle); } return; } if (suiyose.Suck()) { // 吸い寄せられている spRenderer.flipX = Blackhole.instance.transform.position.x < transform.position.x; anim.SetInteger("State", (int)AnimType.Sucked); } else { // 吸い寄せられていない時 if (rb.velocity.y >= 0) { anim.SetInteger("State", (int)AnimType.Idle); } else { anim.SetInteger("State", (int)AnimType.Fall); } } if (Input.GetMouseButton(0)) { AddEnergy(EnergySubBlackhole * Time.fixedDeltaTime); } else { if (OnGroundChecker.Check(capsuleCollider2D)) { AddEnergy(energyRecoveryOnGround * Time.fixedDeltaTime); } else { AddEnergy(energyRecoveryInTheAir * Time.fixedDeltaTime); } } // 無敵処理 mutekiTime -= Time.fixedDeltaTime; anim.SetFloat("MutekiTime", mutekiTime); }