// Update is called once per frame void Update() { gravidy = -(2 * maxJumpHight) / Mathf.Pow(timeToJumpApex, 2); MaxJumpVelocity = Mathf.Abs(gravidy) * timeToJumpApex; if (controler.colinfo.above || controler.colinfo.bellow) { velocity.y = 0; } if (moveInput.y > 0 && controler.colinfo.bellow) { velocity.y = MaxJumpVelocity; } //TODO fix this so its not using old input system if (Input.GetKeyUp(KeyCode.W)) { if (velocity.y > minJumpVelocity) { velocity.y = minJumpVelocity; } } float TargetvelocityX = moveInput.x * moveSpeed; velocity.x = Mathf.SmoothDamp(velocity.x, TargetvelocityX, ref velocityXsmothing, (controler.colinfo.bellow) ? accelerationTimeGrounded : accelerationTimeAirborne); if (applyGrav == true) { velocity.y += gravidy * Time.deltaTime; } controler.Move(velocity * Time.deltaTime); }
/// <summary> /// force in the posidt direction /// </summary> private IEnumerator backforce(Vector3 vectorDirection, float type) { RaycastHit2D hit = Physics2D.Raycast(transform.position, vectorDirection * type, Mathf.Infinity, whattohit); Debug.DrawRay(transform.position, vectorDirection * type, color: Color.blue, radis); if (hit.collider != null) { rb.velocity = Vector3.zero; for (int i = 0; i < forceAplydTime; i++) { p.velocity = ((AttackDire * vectorDirection) * -1) * force * Time.deltaTime; Debug.Log(vectorDirection); p.applyGrav = false; controler.Move(p.velocity); yield return(new WaitForSeconds(0.1f)); p.applyGrav = true; } } }