unity3d - 对物体进行测量
问题描述
我完全统一地使用我用摄影测量方法扫描的对象。所以当我创建一个立方体并将这个立方体扩展到我想要测量的程度时,我举了一个例子。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";
}
}
}
解决方案
您可以尝试调试线位置以查看问题是线渲染器还是位置。
Debug.Log(<position>);
print(<position>);
如果找不到问题,记录一些东西通常是一个好习惯。
推荐阅读
- tensorflow - ImportError:找不到“cudart64_90.dll”。TensorFlow
- python - 如何在模板中正确显示递增的 Django 模型字段值?
- c++11 - 迭代 unordered_map C++
- laravel - 使用 Laravel Scout 弹性搜索 Laravel
- java - Android Studio 错误 android.support.v4.app.NotificationSideChannel$tub$Proxy
- karate - 如何在空手道中传递表单字段时禁用编码
- python - `pip install` 红色警告的最佳实践?
- android - 如何查看按ID排序的RecyclerView项目?
- java - clone() 方法是否必须克隆对象中所有级别中的所有引用?
- emacs - 在 Emacs 26.1 中挂钩新的行号模式不起作用