0

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

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

var myPos : Vector3;
var myPlay : Transform;

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

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

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

4

2 回答 2

0

根据Unity3D 的 Roll-A-Ball 教程

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;
        }
    }
于 2016-01-13T16:57:07.770 回答
0

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

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

        private Vector3 offset;
于 2016-01-13T17:13:49.490 回答