Exemple #1
0
    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;
    }
Exemple #2
0
    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
        }
    }