void doJump() { //Debug.Log("Checking vars for jump"); if (Input.GetButtonDown("Jump") && vaultObj != null) { Debug.Log(Mathf.Abs(vaultObj.transform.forward.z - transform.forward.z)); float lookDir = Mathf.Abs(vaultObj.transform.forward.z) - Mathf.Abs(transform.forward.z); if (0 <= lookDir && lookDir <= 0.2f) { StartCoroutine(_vault()); controlState = controlStates.DeusVault; } else { GetComponent <Rigidbody>().velocity += (Vector3.up * jumpForce * Time.fixedDeltaTime); moveSpeed = baseSpeed / 2f * modSpeed; controlState = controlStates.Air; } } else if (Input.GetButtonDown("Jump")) { //Debug.Log("Vars okay, Doing Jump"); //GetComponent<Rigidbody>().AddForce(Vector3.up * jumpForce); GetComponent <Rigidbody>().velocity += (Vector3.up * jumpForce * Time.fixedDeltaTime); moveSpeed = baseSpeed / 2f * modSpeed; controlState = controlStates.Air; } }
IEnumerator _vault() { animator.Play("Vault"); //needs to use probuilder object size z float vaultDistance = vaultObj.transform.localScale.z + 1; //nneds to use probuilder object size y float height; //set the velocity of our grenade = to its current rotation * (trajectory + our player's velocity) //allows us to increase or decrease our velocity if we are moving forwards or backwards GetComponent <Rigidbody>().velocity = transform.forward * 1; //Mathf.Tan(height/(vaultDistance/2)); yield return(new WaitForSeconds(1)); controlState = controlStates.Norm; }
//void setState() //{ // switch (controlState) // { // case controlStates.DeusVault: // controlState = controlStates.Norm; // break; // // default: // Debug.Log("no animation state found"); // break; // } //} void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("Ground")) { if (controlState == controlStates.Stunned) { StopCoroutine(_stunned()); } moveSpeed = baseSpeed; controlState = controlStates.Norm; } else if (collision.gameObject.CompareTag("Climbable")) { } else if (collision.gameObject.CompareTag("Vault")) { vaultObj = collision.gameObject; //Debug.Log(vaultObj); //Debug.Log("Vault Obj forward: " + vaultObj.transform.forward.z); } }
public void setControlerState(string state) { switch (state) { case ("Norm"): controlState = controlStates.Norm; break; case ("Stunned"): controlState = controlStates.Stunned; gunScript.MainCam.SetActive(true); gunScript.ADSCam.SetActive(false); StartCoroutine(_stunned()); break; case ("Dead"): controlState = controlStates.Dead; break; default: break; } }
IEnumerator _stunned() { yield return(new WaitForSeconds(5f)); controlState = controlStates.Norm; }