这应该是一个简单的任务,我已经在Google上进行了搜索,但是我不知道为什么这些示例对我有用。
基本上,我想在第一人称游戏中将瓷砖放置在地面上。我希望将要放置在地面上的物体“悬空”在空中,同时为其选择最佳位置。我可以实例化该对象,使其成为播放器摄像机的子级,但无法将其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 );
}
更新:摄像机是播放器(角色控制器)的子级,并且摄像机处于透视模式。
最佳答案
您可以使用对象的forward vector,如下所示:
public GameObject frontObject;
public float distance;
void Update () {
frontObject.transform.position = Camera.main.transform.position + Camera.main.transform.forward * distance;
}
关于unity3d - 将物体放在相机前面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22696782/