停止相机在x轴上移动

本文关键字:移动 相机 | 更新日期: 2023-09-27 18:10:43

我有一个火箭(玩家)在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轴,但这不起作用。任何想法如何在脚本中做到这一点?谢谢你!

注:我对脚本有点陌生,请告诉我如何实现额外的代码。

停止相机在x轴上移动

将相机锁定在一个轴上的一个简单方法是将上面提供的代码更改为:

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轴上移动。如果这不是你想要达到的效果,请留下评论,我会查看

RigidBody并不能帮助你,因为在RigidBody中锁定轴只会忽略Unity物理所调用的运动,如果你想通过RigidBody来处理它,你可以使用AddForce,但没有必要这样做。最简单的方法就是像这样重写X值:

Vector3 newPosition = player.transform.position + offset;
newPosition.x = 0;
transform.position = newPosition;

计算新位置,然后将X设置为0(或任何其他您想要的值),然后将该向量设置为位置。