public void Unperch() { if (_state == PerchState.Unperched) { return; } _timeSinceUnperch = 0f; bJumpOnTouchRelease = false; _player.GetComponent <Rigidbody2D>().isKinematic = false; if (_state == PerchState.PerchedTop) { _state = PerchState.Unperched; FlipPlayer(); _player.SwitchPerchState(); } else { _state = PerchState.Unperched; _player.transform.position += Vector3.up * 0.2f; _player.SwitchPerchState(); _player.UnperchBottom(); } _gameHandler.UpdateGameSpeed(1); }
public void Perch(string objName, bool touchHeld) { if (objName.Contains("Top") && touchHeld) { _state = PerchState.PerchedTop; } else if (objName.Contains("Bottom") || _player.transform.position.y < 0f) { if (!PerchPossible()) { return; } if (touchHeld) { bJumpOnTouchRelease = true; } _state = PerchState.PerchedBottom; } else if (touchHeld) { _state = PerchState.PerchedTop; } else { return; } _player.SwitchPerchState(); _body.velocity = Vector2.zero; _body.isKinematic = true; _gameHandler.UpdateGameSpeed(0f); SetPerchGraphics(); }