所以我有一个在Y轴上飞起来的火箭(球员)。我在火箭后面有一个带有这个脚本的相机:
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour
{
public GameObject player;
private Vector3 offset;
// Use this for initialization
void Start ()
{
offset = transform.position;
}
// Update is called once per frame
void LateUpdate ()
{
transform.position = player.transform.position + offset;
}
}
如何阻止相机在x轴上移动?我只希望它在Y轴上向上跟随火箭。我尝试添加一个刚体并在那里阻挡X轴但是没有用。任何想法如何在脚本中执行此操作?谢谢!
P.S。我对脚本有点新手,请告诉我如何实现额外的代码。
答案 0 :(得分:0)
嗯,将相机锁定到一个轴的简单方法是将上面提供的代码更改为:
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour
{
public GameObject player;
private Vector3 offset;
// Use this for initialization
void Start ()
{
offset = transform.position;
}
// Update is called once per frame
void LateUpdate ()
{
transform.position = new Vector(
offset.x, player.transform.position.y + offset.y,
offset.z);
}
}
这应该使摄像机只与火箭一起上下移动,但不能在x或z轴上移动。如果这不是您想要达到的目的,请发表评论,我会看看
答案 1 :(得分:0)
RigidBody没有帮助你,因为锁定RigidBody中的轴只会忽略Unity物理调用的动作,如果你想通过RigidBody来处理它,你可以使用AddForce但是没有必要这么做。最简单的方法就是覆盖X值,如下所示:
Vector3 newPosition = player.transform.position + offset;
newPosition.x = 0;
transform.position = newPosition;
计算新位置,然后将X设置为零(或任何其他所需的值),然后将该矢量设置为位置。