gpt4 book ai didi

c# - 使相机在跳跃时不跟随 y 轴上的目标?

转载 作者:行者123 更新时间:2023-11-30 12:19:50 25 4
gpt4 key购买 nike

我正在为我的游戏开发类(class)制作 2D 平台游戏,但我希望相机仅在角色跳跃时跟随 X 轴上的角色。有人知道如何做到这一点吗?

我的代码在这里:

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
//Setter noen "variabler" slik at kameraet følger etter spilleren.
public Transform target;
public float smoothSpeed = 0.2f;
public Vector3 offset;

//Lar oss bestemme om vi vil ha avgrensning for kameraet eller ikke.
public bool bounds;

public Vector3 minCameraPos;
public Vector3 maxCameraPos;



private void FixedUpdate()
{
//Passer på at kameraet ikke bare følger etter spilleren, men ikke hakker, men her kan også "* Time.deltatime" bli lagt til ved
//siden av smoothSpeed, og smoothSpeed endres til f.eks 10, slik at kamera følger karakteren saktere enn det karakteren løper.

Vector3 desiredPosition = target.position + offset;
Vector3 smoothedPosition = Vector3.Lerp (transform.position, desiredPosition, smoothSpeed);
transform.position = smoothedPosition;

//Hvis "Bounds" er sjekket av, så vil avgrensninger for kameraet bli lagt til, men dette blir lagt til manuelt, slik at det kan endres på fra level til level på en enklere måte.
if (bounds)
{
transform.position = new Vector3(Mathf.Clamp(transform.position.x, minCameraPos.x, maxCameraPos.x),
Mathf.Clamp(transform.position.y, minCameraPos.y, maxCameraPos.y),
Mathf.Clamp(transform.position.z, minCameraPos.z, maxCameraPos.z));
}
}
}

最佳答案

这样你就可以只对 x, z 应用偏移,而不改变相机的 Y 位置:

Vector3 desiredPosition = new Vector3(target.position.x + offset.x, transform.position.y, target.position.z + offset.z);

关于c# - 使相机在跳跃时不跟随 y 轴上的目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55162321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com