這應該是一件容易的事,我已經使用了它,但我無法弄清楚爲什麼有任何例子都適合我。在鏡頭前放置一個物體
基本上,我想在我的第一人稱遊戲中放置瓷磚。我希望我想放置在地面上的物體在半空中「漂浮」,同時爲它選擇最佳位置。我可以實例化對象,使它成爲玩家相機的孩子,但我無法將其定位在相機前面的X個單元中;它總是「結束」玩家;
public void StartPlacing (Item item) {
Object itemPrefab = Resources.Load("Prefabs/" + item.prefabName);
GameObject itemObject = (GameObject)Instantiate(itemPrefab);
itemObject.transform.parent = playerCamera.transform;
// What to do here to place it in front of the camera? I've tried this:
itemObject.localPosition = new Vector3(0, 0, 5);
}
UPDATE:相機是玩家(字符控制器)的子項,以及相機處於透視模式。
相機是否爲其他東西?您的父對象的比例可以影響localPosition。如果物體比例很小,你的5可以變成0.05。只是在黑暗中拍攝。 – SirBraneDamuj
你使用哪種類型的相機?投影還是拼寫?你也應該不需要啓動.localPosition,你應該可以把'itemObject.transform.Translate(new Vector3(0,0,5));' – PaulHickman
我更新了原始帖子,提供了更多信息。我還可以補充一點,當我將StartPlacing()方法中的「位置」邏輯移動到Update()方法時,事情至少變得更平滑,但仍然不能正確定位。 – toreau