Unity C#:无法更改新对象的位置或旋转

问题描述 投票:0回答:1

我正在尝试实现传送效果,并且需要在传送目的地生成一个新相机。但是,无论我尝试什么,我都无法更改新实例化的相机的位置和旋转,它甚至不会在我告诉它的地方生成。这是生成代码以及一些调试输出:

Camera targetCamera = Object.Instantiate
(
    cameraPrefab, 
    camera.transform.position,
    camera.transform.rotation
);
Debug.Log(camera.name + ": " + camera.transform.position + ", " 
    + targetCamera.name + ": " + targetCamera.transform.position);
Debug.Log(camera.name + ": " + camera.transform.rotation + ", "
    + targetCamera.name + ": " + targetCamera.transform.rotation); 

调试输出后我立即暂停程序。

This is how the scene looks before starting

代码中的camera指的是Main Camera对象。

Here's where the new camera spawns, camera circled in red is the Main Camera

两个相机对象的位置和旋转输出与检查器中显示的完全不同:

Main Camera values

targetCamera values

Debug output

因此,不仅 targetCamera 不会在我告诉它的地方生成,而且调试和检查器值也完全不同。

我已经尝试在实例化后再次设置 targetCamera 位置和旋转,但这没有任何作用。我还尝试使用预制件创建一个新的 XROrigin 对象,将 targetCamera 附加到该对象并使用 XROrigin.MoveCamerToWorldLocation,但这也没有将其移动到正确的位置。我在这里做错了什么?

c# unity-game-engine virtual-reality
1个回答
0
投票

为什么不使用XR内置的传送系统呢?更容易更好

© www.soinside.com 2019 - 2024. All rights reserved.