我是靠谱客的博主 背后发箍,最近开发中收集的这篇文章主要介绍unity游标卡尺测量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击游标移动,游标部分靠近钢筋,然后停止。然后点击主尺移动,主尺靠近钢筋然后停止,结果显示在New Text中。

 首先是注意我们要测量的单位,如果比较小,那么就要改默认的接触偏移量的值,默认是0.01改为0.001,因为我们这里要精确地毫米。

卡尺的模型部分,要将两个卡角的部分分成独立的两部分,否则Mesh Collider会额外增加一条线,会影响我们做碰撞。

 在钢筋上设置脚本

 脚本内容如下

using UnityEngine;
using UnityEngine.UI;

public class RebarCollider : MonoBehaviour
{
    public Text reading;
    public GameObject startCalibration;
    public GameObject endCalibration;
    public bool cursorMoveFlag = false;
    public bool mainMoveFlag = false;
    public Rigidbody cursorRigidbody;
    public Rigidbody mainRigidbody;
    public float speed = 0.1f;

    public void setMainMoveFlag()
    {
        mainMoveFlag = true;
    }
    public void setCursorMoveFlag()
    {
        cursorMoveFlag = true;
    }

    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("OnCollisionEnter--------"+collision.gameObject.name);
        
        if (collision.gameObject.CompareTag("CursorClaw"))
        {
            cursorMoveFlag = false;
        }else if (collision.gameObject.CompareTag("MainClaw"))
        {
            mainMoveFlag = false;
        }


    }

    private void FixedUpdate()
    {
        if (cursorMoveFlag)
        {
            cursorRigidbody.velocity = Vector3.forward * speed;
        }else if (mainMoveFlag)
        {
            mainRigidbody.velocity = -Vector3.forward * speed;
        }

        float res = (startCalibration.transform.position - endCalibration.transform.position).magnitude;
        reading.text = res.ToString();
    }
}

注意卡尺卡角的rigidbody属性,我们是通过速度移动卡角,所以需要勾选is Kinematic。Collision Detection需要设置为Continuous Speculative否则速度太快会穿模。Constraints需要都勾选否则卡角会脱离父组件。

 最后计算卡尺的读数,需要设置一个开始位置和结束位置,然后计算两个位置的距离大小就是卡尺的最后读数。

精度问题:

物体的原始尺寸

 提高精度需要调整的位置

调整接触偏移量

调整碰撞体,尽量贴合物体表面,发现之前自动生成的Mesh collider没有完全靠近,自己换成后Box collider。

 测量点的开始与结束位置,调整尽量到一个水平线上,尽量减少误差。

最后的结果,误差为0.00001

官方已提供Demo和新的组件来解决这个问题,机械臂 Cool。

 

Articulations - Unity 手册

官方Demo

https://github.com/Unity-Technologies/articulations-robot-demo

最后

以上就是背后发箍为你收集整理的unity游标卡尺测量的全部内容,希望文章能够帮你解决unity游标卡尺测量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部