首頁>Game>source

例如: Physics.Raycast(ray, out hit, range, layerMask) ,比方說 layerMask = groundMask .我想做的是仅在未击中地面遮罩時才返迴true.就像我的意思是"忽略 groundMask以外的raycast "。总有办法吗?

一些例子:

origin ------------ (groundmask) -------- (other mask) --- // return false; 
because there is a ground mask in a range
origin ---------------------------------- (other mask) --- // return true;
because there is no ground mask in a range
最新回復
  • 6月前
    1 #

    如果對某个圖層进行投射,則仅当您的投射達到指定的圖層時才應返迴true。

    您可以將QueryTriggerInteraction設置為還註册已設置對撞機来觸發的物件。

    您可以使用此方法對您要檢查的任何圖層进行投射,並且仅会返迴到您所觸摸的圖層。

    示例:"地面遮罩"

    public bool GroundCheck()
    {
        return isGrounded = Physics.Raycast(transform.position, Vector3.down, out hit, range, groundMask,QueryTriggerInteraction.Collide);
    }
    

    如果要查看是否未接地,可以使用!GroundCheck()或!isGrounded来查看是否不再接地。

    請確保還將圖層設置為用於地面的物件,否則不会获得地面圖層檢查的迴報。

  • unity:如何檢測立方體的哪一侧朝上/下/左/右?
  • unity:碰撞時如何固定振動?