private void Vault() { BarycentricDistance barycentricDistance = new BarycentricDistance(coverObject.GetComponent <MeshFilter>()); lastClosestVaultPoint = barycentricDistance.GetClosestTriangleAndPoint(transform.position).closestPoint; lastClosestVaultFaces = coverObject.transform.CalculateLocalXZFacePoints(); Vector3 localizedPlayerPosition = coverObject.transform.InverseTransformPoint(transform.position); if (localizedPlayerPosition.x < lastClosestVaultFaces[2].x && localizedPlayerPosition.x > lastClosestVaultFaces[3].x) { Vector3 endpoint = coverObject.transform.InverseTransformPoint(lastClosestVaultPoint); endpoint.z *= -1; vaultEndPoint = coverObject.transform.TransformPoint(endpoint); } else { Vector3 endpoint = coverObject.transform.InverseTransformPoint(lastClosestVaultPoint); endpoint.x *= -1; vaultEndPoint = coverObject.transform.TransformPoint(endpoint); } vaultLerpTotalTime = Vector3.Distance(lastClosestVaultPoint, vaultEndPoint) / 4; vaultLerpStartTime = Time.time; vaulting = true; }
private void Cover() { Debug.Log("OMG TAKING COVER!"); BarycentricDistance barycentricDistance = new BarycentricDistance(coverObject.GetComponent <MeshFilter>()); lastClosestVaultPoint = barycentricDistance.GetClosestTriangleAndPoint(transform.position).closestPoint; lastClosestVaultFaces = coverObject.transform.CalculateLocalXZFacePoints(); Vector3 localizedPlayerPosition = coverObject.transform.InverseTransformPoint(transform.position); if (localizedPlayerPosition.x < lastClosestVaultFaces[2].x && localizedPlayerPosition.x > lastClosestVaultFaces[3].x) { //Vector3 endpoint = coverObject.transform } }