如何将游戏对象的位置/旋转附加到位置/旋转相机

本文关键字:旋转 位置 相机 对象 游戏 | 更新日期: 2023-09-27 18:28:12

我正在开发kinect V2,我想制作一个脚本,将游戏对象的位置(使用头部跟踪器移动)和我场景的相机连接起来,以产生全息图的错觉。

我将相机作为游戏对象的子对象来访问它,查看相机轨道(旋转),并使用投影矩阵来翻转相机的某个轴。

但是投影矩阵对我的场景的纹理和照明造成了一些错误。这就是为什么我想创建一个c#脚本,它说:

位置相机=位置游戏对象(x,y,-z)

如果位置游戏对象x>0,则旋转摄影机y增加。

如果位置游戏对象x<0否则旋转相机y减小。

如果位置游戏对象y>0,则旋转摄影机y减小。

如果位置游戏对象y<0否则旋转相机y增加。

对旋转摄影机z轴没有任何操作。

你能帮我用C#翻译一下吗?

这不是我的脚本:),但只是我想做的主要想法。我希望作为一个初学者,能得到你的帮助!

非常感谢

如何将游戏对象的位置/旋转附加到位置/旋转相机

很难说出你想要什么。这里有一些psuedo代码,应该可以帮助您。我没有团结来检验它,它也不完整。但它会给你一些基础知识来学习你想要做的事情

using UnityEngine;
using System.Collections;
public class TestScript: MonoBehaviour {
    public GameObject camera;
    public GameObject gameObject;
    public int rotationAmount = 1;
    // Update is called once per frame
    void Update () {
        Vector3 camera = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, -gameObject.transform.position.x);
        if(gameObject.transform.position > 0) {
            camera.x -= rotationAmount;
        }
        camera.transform.position = camera;
    }
}

你必须将C#脚本命名为TestScript,将其拖动到游戏对象上,并将你的相机和游戏对象拖动到其插槽中。如果你不知道如何做到这一点,我建议你多读《团结》。