【问题标题】:Unity -- Camera Child of Player Rotates UncontrollablyUnity - 玩家的相机子级无法控制旋转
【发布时间】: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


【解决方案1】:

这并不是您制作鼠标外观控制器的真正方式。 你应该看看这些控制器:

https://forum.unity.com/threads/a-free-simple-smooth-mouselook.73117/

http://wiki.unity3d.com/index.php/SmoothMouseLook

或者这个JS一个:http://answers.unity3d.com/answers/367253/view.html

【讨论】:

  • 谢谢!我是个新手,所以我试着做一个我能想到的最简单的(更少的事情要搞砸)。
  • 不要害怕破坏——这是学习过程的一部分
  • 已修复!我浏览了链接,最终找到了一个解决方案,其中相机是玩家的孩子,鼠标旋转玩家。摄像机旋转脚本都融入了主要玩家的移动中,一切都很好。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2015-11-20
相关资源
最近更新 更多