大家好,我嘗試制作一個城市建筑游戲,這個想法非常簡單,實際上實體化一個建筑并在點擊放置按鈕和放置后用滑鼠移動它們。問題是如果另一座建筑物的對撞機完全包圍了我建造的建筑物的對撞機,我就無法移動新建筑物。我可能可以用圖片更好地解釋。 問題 1 第一張照片是我的新建筑,你可以看到對撞機的限制,第二張是我已經放置的舊建筑。我理解這個問題,但我無法解決它。這是我的物件拖動代碼
private void OnMouseDrag()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, 1000f,(1 << LayerMask.NameToLayer("Ground"))))
{
Debug.Log(hitInfo.transform.name);
transform.position = SnapToGrid(hitInfo.point);
}
}
private Vector3Int SnapToGrid(Vector3 pos)
{
Vector3 tempPos = pos;
Vector3Int snappedPos;
snappedPos = new Vector3Int(Mathf.RoundToInt(tempPos.x), Mathf.RoundToInt(tempPos.y), Mathf.RoundToInt(tempPos.z));
return snappedPos;
}
我在這里先向您的幫助表示感謝
uj5u.com熱心網友回復:
如果我的問題是正確的,我相信您可以通過在移動新建筑物時啟用先前放置的建筑物碰撞器的“Is Trigger”選項來解決問題。在物件中啟用此選項可以使其他物件在發生碰撞時可以通過它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483848.html
標籤:unity3d
上一篇:日/夜回圈并跟蹤日子?
下一篇:Unity未檢測到F1和F2按鍵