所以,我正在建立一个3D跑步者,并且我在摄像机跟随球的过程中遇到了很多问题。我已经在谷歌上呆了几个小时,找不到任何不过时或填写我需要的东西的东西。我想要一个跟随我的球但在X轴上直行的相机。当有楼梯时,相机需要跟随Y轴。
我只是不想让我的相机旋转(因为我的物体是滚球)并且想要在Z轴上移动。
var myPos : Vector3;
var myPlay : Transform;
function Update()
{
transform.position = myPlay.position + myPos;
}
这就是我已经拥有的。它不会旋转,但它会跟随Z轴。我不想要那个。
http://prntscr.com/9pmypz这就是Inspector中的样子。
答案 0 :(得分:0)
根据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;
}
}
答案 1 :(得分:0)
由于声誉不佳,我无法评论@HDL_CinC_Dragon的答案,但我想补充一点,使用公共访问修饰符是一个非常糟糕的习惯。相反,您应该在字段上使用具有SerializeField属性的私有访问修饰符,如下所示:
public class CameraController : MonoBehaviour
{
[SerializeField]
private GameObject player;
private Vector3 offset;