UNITY 3D - Camera透视图显示物体移动方向错误

时间:2017-08-14 22:40:21

标签: c# unity3d camera

在按照一些指南移动对象时,我遇到了这个问题。

因此,除了相机之外,场景中的所有对象在旋转时都是0,0,0。相机,然后是0,180,0。脚本说 - 对象移动到左边 :

    private void getDataFromFile() {

    FileInputStream fileInputStream = null;
    try {
        fileInputStream = getContext().openFileInput("fileName");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return;
    }
    ObjectInputStream objectInputStream = null;
    try {
        objectInputStream = new ObjectInputStream(fileInputStream);
    } catch (IOException |NullPointerException e) {
        e.printStackTrace();
    }
    try {
        yourArrayList = (ArrayList<YourClassName>) objectInputStream.readObject();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        objectInputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

技术上它向左移动,但摄像机视角为180度,从正面看游戏。因此,我唯一的解决方案是在Y上旋转平台以匹配透视图以使其反向,因此在处理事物时我不必继续使用负数来执行与实际场景相反的操作吗?

2 个答案:

答案 0 :(得分:1)

您可以使用相机的Vector3,而不是使用在世界空间中定义的transform静态变量,因此移动方向取决于相机。那就是你的情况:

void Update () {
    transform.Translate(
    -Camera.main.transform.right * (ScrollSpeed * Time.deltaTime));
}

注意-前面的Camera.main.transform.right,右方向的反面是左方向; - )

如果您的场景中有多个相机,请使用您想要的相机参考而不是Camera.main

答案 1 :(得分:0)

我发现了这个问题。

所以原始场景本身是0,0,0,但是我需要在Y轴上播放场景-180并且在0,0,0面对着镜头,这样旋转的唯一东西就是设计背景