簡體   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