Esempio n. 1
0
    public void FitToTarget(TargetSizer targetSizer, bool useCollider = false)
    {
        PointOfInterest interestPoint = targetSizer.GetComponent<PointOfInterest>();
        Vector3 targetSize = new Vector3(0.001f, 0.001f, 0.001f);
        Vector3 targetPosition = targetSizer.gameObject.transform.position;
        Quaternion targetRotation = TransitionManager.Instance.ViewVolume.transform.rotation;

        if (targetSizer.TargetFillCollider != null)
        {
            targetSize = useCollider
                ? targetSizer.TargetFillCollider.bounds.size
                : targetSizer.TargetFillCollider.transform.lossyScale;
            targetPosition = targetSizer.TargetFillCollider.transform.parent.position;
            targetRotation = targetSizer.TargetFillCollider.transform.parent.rotation;
        }
        else if (interestPoint != null)
        {
            targetPosition -= interestPoint.IndicatorOffset;
        }

        gameObject.transform.position = targetPosition;
        gameObject.transform.rotation = targetRotation;

        float parentScale = useCollider
            ? Mathf.Max(TargetFillCollider.bounds.size.x, TargetFillCollider.bounds.size.y, TargetFillCollider.bounds.size.z) /
                Mathf.Max(gameObject.transform.localScale.x, gameObject.transform.localScale.y, gameObject.transform.localScale.z)
            : Mathf.Max(TargetFillCollider.transform.lossyScale.x, TargetFillCollider.transform.lossyScale.y, TargetFillCollider.transform.lossyScale.z) /
                Mathf.Max(gameObject.transform.localScale.x, gameObject.transform.localScale.y, gameObject.transform.localScale.z);
        gameObject.transform.localScale = targetSize / parentScale;
    }
Esempio n. 2
0
    public void FitToTarget(TargetSizer targetSizer, bool useCollider = false)
    {
        PointOfInterest interestPoint  = targetSizer.GetComponent <PointOfInterest>();
        Vector3         targetSize     = new Vector3(0.001f, 0.001f, 0.001f);
        Vector3         targetPosition = targetSizer.gameObject.transform.position;
        Quaternion      targetRotation = TransitionManager.Instance.ViewVolume.transform.rotation;

        if (targetSizer.TargetFillCollider != null)
        {
            targetSize = useCollider
                ? targetSizer.TargetFillCollider.bounds.size
                : targetSizer.TargetFillCollider.transform.lossyScale;
            targetPosition = targetSizer.TargetFillCollider.transform.parent.position;
            targetRotation = targetSizer.TargetFillCollider.transform.parent.rotation;
        }
        else if (interestPoint != null)
        {
            targetPosition -= interestPoint.IndicatorOffset;
        }

        gameObject.transform.position = targetPosition;
        gameObject.transform.rotation = targetRotation;

        float parentScale = useCollider
            ? Mathf.Max(TargetFillCollider.bounds.size.x, TargetFillCollider.bounds.size.y, TargetFillCollider.bounds.size.z) /
                            Mathf.Max(gameObject.transform.localScale.x, gameObject.transform.localScale.y, gameObject.transform.localScale.z)
            : Mathf.Max(TargetFillCollider.transform.lossyScale.x, TargetFillCollider.transform.lossyScale.y, TargetFillCollider.transform.lossyScale.z) /
                            Mathf.Max(gameObject.transform.localScale.x, gameObject.transform.localScale.y, gameObject.transform.localScale.z);

        gameObject.transform.localScale = targetSize / parentScale;
    }