首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使摄像机在跳跃时不跟踪y轴上的目标?

使摄像机在跳跃时不跟踪y轴上的目标?
EN

Stack Overflow用户
提问于 2019-03-14 20:15:26
回答 2查看 108关注 0票数 3

我正在为我的游戏开发类制作一个2D platformer游戏,但我希望当角色跳跃时,相机只在X轴上跟随角色。有人知道怎么做吗?

我的代码如下:

代码语言:javascript
复制
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));
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-14 20:31:23

相机正在跟踪目标,但我可以看到它也在x,y和z方向上移动。如果你不想在跳跃时跟随目标,你应该有一个指示器,告诉你目标何时正在跳跃。

代码语言:javascript
复制
public PlayerClass target; //Replace --> public Transform target;

在FixedUpdate中

代码语言:javascript
复制
//After the camera movement operations save the y component
originalY = this.transform.position.y;

if(target.IsJumping)
{
    this.transform.position.y = originalY;
}
票数 0
EN

Stack Overflow用户

发布于 2019-03-14 20:31:44

这样,您可以仅对x、z应用偏移,而不会更改摄影机的Y位置:

代码语言:javascript
复制
Vector3 desiredPosition = new Vector3(target.position.x + offset.x, transform.position.y, target.position.z + offset.z);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55162321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档