繁体   English   中英

Unity获取与平面隐藏部分的碰撞坐标

[英]Unity get collision coordinate with hidden part of a plane

我在飞机上有一个球体可以粘在我的鼠标上。 我想把那个球体放在指针的 position 上,指针会碰到平面。 但是飞机被球挡住了。 它可以工作,但是球的运动很吵。 我想忽略除碰撞飞机之外的一切。 谁能帮忙?

这就是我实际所做的:

if (Ball!= null) {
        RaycastHit raycastHit;
        
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out raycastHit, 100f))
        {
            if (raycastHit.transform != null)
            {
                //Our custom method. 
                var x = raycastHit.point.x;
                var z = raycastHit.point.z;
                Ball.pos().get_x().update_value(x);
                Ball.pos().get_z().update_value(z);
                
            }
        }
        
        }

您可以使用图层和图层蒙版来做到这一点。 创建一个新层并将其命名为 MyHiddenLayer 并将您的 object 分配给它。 然后做:

// Define output
RaycastHit raycastHit;

// Define Ray
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

// Define Layer
int layerMask = 1 <<  LayerMask.NameToLayer("MyHiddenLayer");

if (Physics.Raycast(ray, out raycastHit, 100f, layerMask))
{
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM