【问题标题】:Unity camera following rolling ball. No rotation and no moving in Z-axis on cameraUnity 相机跟随滚动球。相机Z轴不旋转也不移动
【发布时间】:2016-04-18 17:39:24
【问题描述】:

所以,我正在构建一个 3D 跑步者,但我在让相机跟随球时遇到了很多问题。我已经在谷歌上呆了几个小时,找不到任何不过时的东西或填写我需要的东西。我想要一个跟随我的球但沿 X 轴直线移动的相机。当有楼梯时,相机需要在 Y 轴上跟随。

我只是不希望我的相机旋转(因为我的对象是一个滚动的球)并在 Z 轴上移动。

var myPos : Vector3;
var myPlay : Transform;

function Update()
{
transform.position = myPlay.position + myPos;
}

这是我已经拥有的。它不旋转,但它在 Z 轴上跟随。我不想那样。

http://prntscr.com/9pmypz 这是 Inspector 中的样子。

【问题讨论】:

  • 请显示您目前尝试过的代码
  • 查看我发布的答案
  • 您使用的是哪个版本的 Unity?与以前的版本相比,Unity 5 具有引用对象的独特方式......另外,我认为不应应用 C# 标签。是的,Unity 使用 C#,但这是 Unity 特定的问题,而不是 C# 问题...
  • @HDL_CinC_Dragon re:您建议的编辑 - C# 标签有问题,但统一标签肯定是错误的 - 它应该是 unity3d,因为统一标签是关于一个完全不同的库,甚至明确说不是将其用于 unity3d。
  • 我目前正在使用unity 5。很抱歉把C#标签放进去,没想到。

标签: unity3d camera rotation runner


【解决方案1】:

根据Unity3D's Roll-A-Ball tutorial

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour
    {
        public GameObject player;

        private Vector3 offset;

    void Start ()
        {
            offset = transform.position - player.transform.position;
        }

    void LateUpdate ()
        {
            transform.position = player.transform.position + offset;
        }
    }

【讨论】:

  • 那么我怎样才能将它添加到我的脚本中,这样我的凸轮就不会在 Z 轴上移动?我已有的脚本有问题。
  • 我强烈建议您观看提供的链接中的 5 分钟视频。它会比我更好地为您提供所需的信息。
【解决方案2】:

由于我的声誉低,我无法评论@HDL_CinC_Dragon 的答案,但我想补充一点,使用公共访问修饰符是一个非常糟糕的习惯。相反,您应该在字段上使用带有 SerializeField 属性的私有访问修饰符,如下所示:

public class CameraController : MonoBehaviour
    {
        [SerializeField]
        private GameObject player;

        private Vector3 offset;

【讨论】:

  • 在这种情况下,玩家GameObject 已经是公共成员,因为它是项目中的资产而不是相机控制器的成员,因为player 本质上只是公共对象的挂钩.我在这里不正确吗? (到目前为止,我还不是 Unity 专家,但我觉得在这个非常具体的情况下,应该没有必要使用 private[SerializeField] 属性......除非你希望 GameObject 显示为Inspector 中的 Camera 对象的参数,而不是仅使用 GetComponent 来定义 player?
  • 这不是关于私有和 [SerializeField] 是“必要的”,您的属性应该始终是私有的。您可以在任何有关 OOP 的书中了解原因。我不知道 Unity 团队是如何构建这个项目的,但是没有充分的理由公开这个变量,你有很多不同的方法可以避免这种情况,在检查器中拥有一个序列化的字段只是其中之一。
猜你喜欢
  • 2015-06-22
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多