// Update is called once per frame void FixedUpdate() { switch (sharkAction) { case SharkActions.underLava: col.density = 4.9f; break; case SharkActions.swimmingLeft: col.density = 4f; xScale = 1; rb.AddForce(Vector2.right * ((-swimSpeed - rb.velocity.x)), ForceMode2D.Impulse); break; case SharkActions.swimmingRight: col.density = 4f; xScale = -1; rb.AddForce(Vector2.right * ((swimSpeed - rb.velocity.x)), ForceMode2D.Impulse); break; case SharkActions.jumpCenter: rb.AddForce(Vector2.up * 500f, ForceMode2D.Impulse); break; case SharkActions.jumpLeft: rb.AddForce(upLeft * 1000f, ForceMode2D.Impulse); break; case SharkActions.jumpRight: rb.AddForce(upRight * 1000f, ForceMode2D.Impulse); //rigidbody.constraints &= ~RigidbodyConstraints.FreezePositionZ; break; } transform.localScale = new Vector3(xScale, 1, 1); if (sharkAction == SharkActions.jumpCenter) { sharkAction = SharkActions.underLava; } if (sharkAction == SharkActions.jumpLeft) { sharkAction = SharkActions.swimmingLeft; } if (sharkAction == SharkActions.jumpRight) { sharkAction = SharkActions.swimmingRight; } }
// Use this for initialization void Start() { rb = GetComponent <Rigidbody2D>(); sharkAction = SharkActions.underLava; col = GetComponent <Collider2D>(); }