【发布时间】:2018-02-22 20:33:23
【问题描述】:
我有一台摄像机,我想始终与玩家保持在同一位置。我通过让它成为玩家的孩子来做到这一点,因为当我通过脚本完成它时,玩家会领先于相机。我也让相机用鼠标旋转。但是,当我将相机设置为玩家的孩子时,我的玩家和相机现在不会停止旋转,而是在鼠标静止时继续旋转。我希望相机仅在鼠标移动时旋转。我的代码(JS):
#pragma strict
var player : GameObject;
function Start () {
player = GameObject.Find("Player");
Cursor.visible = false;
}
function Update () {
//transform.position = player.transform.position;
transform.Rotate(Input.GetAxis("Mouse Y") * -2, Input.GetAxis("Mouse X") * 5, 0);
transform.rotation.eulerAngles = new Vector3(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, 0);
//player.transform.rotation = transform.rotation;
}
注释掉的第一行是将相机移动到播放器的现在不必要的代码,第二行是导致问题的代码。如果我将其移除,相机会正常旋转,但玩家无法转动(基于transform.forward 的控件)。如果我取消注释它,播放器和相机会毫无摩擦地转动并且无法控制。
【问题讨论】:
-
您尝试过 Unity 示例项目中的预制相机吗?他们有很酷的工作相机,如第三人称等。您可以查看代码或直接使用它。
-
谢谢,我可以这样做。
-
好消息!问题是它旋转了播放器,然后作为播放器的孩子旋转了相机,重复令人作呕。正在尝试修复它。
标签: unity3d unityscript