void OnEntityChangeState(M8.EntityBase ent) { mState = (EntityState)ent.state; switch (mState) { case EntityState.Spawn: sprite.gameObject.SetActive(false); break; case EntityState.Normal: case EntityState.Victory: if ((EntityState)ent.prevState == EntityState.Spawn) { mIsGrounded = true; } else { mIsGrounded = heroEntity.moveCtrl.isGrounded; } mMoveState = heroEntity.moveState; mVelY = Mathf.Sign(heroEntity.moveCtrl.localVelocity.y) * velYThreshold; UpdateAnim(); break; } }
void Update() { if (GameMapController.instance.mode == GameMapController.Mode.Edit) { return; } switch (mState) { case EntityState.Normal: case EntityState.Victory: //check if we need to update animation bool isGrounded = heroEntity.moveCtrl.isGrounded; float velY = isGrounded ? mVelY : heroEntity.moveCtrl.localVelocity.y; EntityHero.MoveState moveState = heroEntity.moveState; if (mIsGrounded != isGrounded || mVelY != velY || mMoveState != moveState) { mIsGrounded = isGrounded; mVelY = velY; mMoveState = moveState; UpdateAnim(); } break; } }
private void ShowInterface(EntityHero.MoveState state) { switch (state) { case EntityHero.MoveState.Stop: stopGO.SetActive(true); rightGO.SetActive(false); leftGO.SetActive(false); break; case EntityHero.MoveState.Left: stopGO.SetActive(false); rightGO.SetActive(false); leftGO.SetActive(true); break; case EntityHero.MoveState.Right: stopGO.SetActive(false); rightGO.SetActive(true); leftGO.SetActive(false); break; } }