diff --git a/Assets/Scripts/Core/Graph Tasks/AddJump.cs b/Assets/Scripts/Core/Graph Tasks/AddJump.cs index 9b6ea07..7c8cc13 100644 --- a/Assets/Scripts/Core/Graph Tasks/AddJump.cs +++ b/Assets/Scripts/Core/Graph Tasks/AddJump.cs @@ -53,7 +53,7 @@ namespace NodeCanvas.Tasks.Actions { // Save current velocity and get current input direction Vector3 currentVelocityVector3 = new Vector3(agent.velocity.x, 0f, agent.velocity.z); Vector2 currentInput = agent.GetComponent().rawMoveInput; - Vector3 currentInputVector3 = Camera.main.transform.rotation.Flatten(0, null, 0) * new Vector3(currentInput.x, 0f, currentInput.y); + Vector3 currentInputVector3 = new Vector3(currentInput.x, 0f, currentInput.y); // Ignore rotation for the current velocity Vector3 currentVelocityWorld = agent.transform.InverseTransformDirection(currentVelocityVector3.normalized); @@ -82,7 +82,7 @@ namespace NodeCanvas.Tasks.Actions { remappedAirDirectionDot = Mathf.Clamp(remappedAirDirectionDot, 0f, 1f); // Lerp between the current direction and the inputted direction based on the previous dot product - Vector3 outputDirection = Vector3.Lerp(currentVelocityVector3.normalized, currentInputVector3.normalized, remappedAirDirectionDot); + Vector3 outputDirection = Vector3.Lerp(currentInputVector3.normalized, currentVelocityVector3.normalized, remappedAirDirectionDot); // If there is a direction force, lean into that based on it's strength outputDirection = Vector3.Lerp(outputDirection, directionalForce.value.normalized, directionalForceStrength.value).normalized; @@ -90,7 +90,10 @@ namespace NodeCanvas.Tasks.Actions { // Extra math to degrade current air move direction by velocity inheritence, before applying new air direction airMoveDirection.value *= currentVelocityInheritence.value; - // Set air move direciton + // Account for the camera's rotation before setting it as the air move direction + outputDirection = Camera.main.transform.rotation.Flatten(0, null, 0) * outputDirection; + + // Set air move direction airMoveDirection.value += outputDirection * outputVelocity; }