如何将游戏对象的位置/旋转附加到位置/旋转相机
本文关键字:旋转 位置 相机 对象 游戏 | 更新日期: 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,将其拖动到游戏对象上,并将你的相机和游戏对象拖动到其插槽中。如果你不知道如何做到这一点,我建议你多读《团结》。