// Called once per frame void Update() { // Calculate mass and force for character if (!useCustomMass) { force = mass * Mathf.Abs(Physics.gravity.y); } else { force = customMass * Mathf.Abs(Physics.gravity.y); } // Physics for Primitive primitiveGravityForce = primitiveMass * (Physics.gravity.y); primitiveSpeed = primitiveCollider.gameObject.GetComponent <Rigidbody>().velocity; primitiveImpulse = primitiveMass * (Vector3.zero - primitiveSpeed); forceNetExertedByGround = primitiveImpulse / contactTime; totalForce = forceNetExertedByGround.y + Math.Abs(primitiveGravityForce); // Plot Information //totalForceYPlot = totalForce; // Brush.cs needs them heightIKLeft = _feetPlacement.LeftFootIKPosition.y; heightIKRight = _feetPlacement.RightFootIKPosition.y; // For debug centerGridLeftFoot = World2Grid(_feetPlacement.LeftFootIKPosition.x, _feetPlacement.LeftFootIKPosition.z); centerGridRightFoot = World2Grid(_feetPlacement.RightFootIKPosition.x, _feetPlacement.RightFootIKPosition.z); // Just informative isLeftFootGrounded = _feetPlacement.isLeftFootGrounded; isRightFootGrounded = _feetPlacement.isRightFootGrounded; // Plot the position of the feet in both systems if (printFeetPositions) { Debug.Log("[INFO] Left Foot Coords (World): " + _feetPlacement.LeftFootIKPosition.ToString()); Debug.Log("[INFO] Left Foot Coords (Grid): " + centerGridLeftFoot.ToString()); Debug.Log("[INFO] Right Foot Coords (World): " + _feetPlacement.RightFootIKPosition.ToString()); Debug.Log("[INFO] Right Foot Coords (Grid): " + centerGridRightFoot.ToString()); } // Apply brush to feet if (current_brush) { // Included inside: Print + Filter current_brush.CallFootprint(_feetPlacement.LeftFootIKPosition.x, _feetPlacement.LeftFootIKPosition.z, _feetPlacement.RightFootIKPosition.x, _feetPlacement.RightFootIKPosition.z); } // Apply brush to primitive if (current_brush_primitive) { // Test brush to make prints for a given 3D primitive current_brush_primitive.CallFootprint(primitiveCollider.gameObject.transform.position.x, primitiveCollider.gameObject.transform.position.z); } if (smoothAll) { // Terrain Center Vector3 rayGrid = new Vector3(heightmap_width / 2, 0, heightmap_height / 2); Vector3 rayGridWorld = Grid2World(rayGrid); Debug.DrawRay(rayGridWorld, Vector3.up * 4, Color.blue); elapsed += Time.deltaTime; if (elapsed >= smoothTimeInterval) { elapsed = elapsed % smoothTimeInterval; //GaussianCustom(); GaussianBlur3(); } } }