我正在搞乱unity3d以便学习它 例如,在源引擎中制作我自己的3d天空盒时有一个难题。我正在使用标准的第一人称控制器 我为我的天空盒制作了另一台带有相同FOV的摄像机,并使用我在天空盒摄像机上放置的脚本将其从第一人称控制器中的摄像机中取出。 (Maincam字段中包含第一人称控制器摄像头组件)
using UnityEngine;
using System.Collections;
public class CameraSlave : MonoBehaviour {
public Component Maincam;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.rotation = Maincam.transform.rotation;
}
}
你可以看到结果here.它有点好笑。 (背景中的大四面体形状在我的天空盒中,其他一切都很正常)
据我了解,只要相机fov是相同的,我的天空盒的尺寸无关紧要
我认为问题是,是否存在一些滞后?就像上面代码中的更新被称为一帧太晚了?我尝试从第一人称控制器鼠标外观脚本调用该更新,但是除了获得大量错误之外,结果是相同的。
答案 0 :(得分:2)
我无法想象你的例子,顺便说一下:
我认为问题是,是否存在一些滞后?喜欢中的更新 上面的代码被称为一帧太晚了?我试着打电话 从第一人称控制器鼠标外观脚本更新,但作为 以及获得大量错误的结果是相同的。
您不能依赖引擎调用Update
方法的顺序(除非您强制执行特定订单,但这通常不是一个好选择)。对于相机更新操作,最好使用LateUpdate。保证在所有Update
方法之后调用它。