首页 > 解决方案 > 对物体进行测量

问题描述

我完全统一地使用我用摄影测量方法扫描的对象。所以当我创建一个立方体并将这个立方体扩展到我想要测量的程度时,我举了一个例子。z 值以米为单位给出值。我想要做的是测量要在我单击对象的两个点之间创建的对象的距离以及我将超过它的值。我怎样才能做到这一点?我已经尝试了下面的代码,但没有任何效果。

    using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class olcumYap : MonoBehaviour
{
    private LineRenderer lineRend;
    private Vector2 mousePos;
    private Vector2 startMousePos;

    [SerializeField]
    private Text distanceText;

    private float distance;
    // Start is called before the first frame update
    void Start()
    {
        lineRend = GetComponent<LineRenderer>();
        lineRend.positionCount = 2;
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            startMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        }
        if (Input.GetMouseButton(0))
        {
            mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            lineRend.SetPosition(0, new Vector3(startMousePos.x, startMousePos.y, 0f));
            lineRend.SetPosition(1, new Vector3(mousePos.x, mousePos.y, 0f));
            distance = (mousePos - startMousePos).magnitude;
            distanceText.text = distance.ToString("F2") + "metre";
        }
    }
}

标签: unity3d3dmeasure

解决方案


您可以尝试调试线位置以查看问题是线渲染器还是位置。

Debug.Log(<position>);
print(<position>);

如果找不到问题,记录一些东西通常是一个好习惯。


推荐阅读