Example #1
0
    private void UpdatePointerProjectRay(Vector3 destination)
    {
        //Make ray start at player's reticle and end at the global "destination" point
        Vector3   origin = _Camera.ProjectRayOrigin(PlayerReticle.GetPointerPosition());
        Vector3   normal = _Camera.ProjectLocalRayNormal(PlayerReticle.GetPointerPosition());
        Transform update = new Transform(_Camera.GlobalTransform.basis, origin);

        PointerProjectRay.GlobalTransform = update;
        PointerProjectRay.CastTo          = normal * -ScanRay.CastTo.z;
    }
Example #2
0
    private void UpdateCursorAndCarryWorldPosition()
    {
        CarryWorldPosition = ScanRay.GlobalTransform.origin - (ScanRay.GlobalTransform.basis.z * CarryDistance);
        if (ScanRay.IsColliding())
        {
            CursorWorldPosition = ScanRay.GetCollisionPoint();
        }
        else
        {
            CursorWorldPosition = ScanRay.GlobalTransform.origin - (ScanRay.GlobalTransform.basis.z * -ScanRay.CastTo.z);
        }

        //Position Reticle at proper point
        PlayerReticle.LerpPointAt(_Camera, CursorWorldPosition, 0.1f);

        //Update project ray
        UpdatePointerProjectRay(CursorWorldPosition);
    }