如何让玩家身高一致地滚动背景?

时间:2016-03-31 22:56:00

标签: unity3d

我正在做一个无尽的跳投。我试图让BG根据玩家身高向下滚动。

我见过以特定速度移动代码的代码:

public float speed = .5f;

void Updated(){

     Vector2 offset = new Vector2(0, Time.deltatime * speed);
     GetComponent<Renderer>().material.mainTextureOffset = offset;
}

我想用播放器的高度移动它。

 public float PlayerHeight;

所以现在我需要设置BG的高度。我无法弄清楚如何做这个部分。

Transform background;
public float backgroundHeightY;
public GameObject BackGround;
从这里开始,我被卡住了。我不希望它随着相机移动,而是根据播放器的高度以一定速率移动。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:0)

听起来你的背景相对于相机有一个固定的位置,但是你想要背景滚动&#34;反对&#34;玩家在上下移动时会产生视差效应吗?

public Transform player;
public float multiplier = 0.1f; //Tweak this

void Update(){
     Vector2 offset = new Vector2(0, player.position.y * multiplier);
     GetComponent<Renderer>().material.mainTextureOffset = offset;
}

答案 1 :(得分:0)

我的工作状况很好,但不会下降。以下是它的工作方式。我调整了backgroundModifier以适应我需要的时间。

     //Changes the BG position
     changeAmount = (playerHeightY - currentCameraHeight)/backgroundModifier;
     Vector3 temp = new Vector3(0, changeAmount, 0);
     BackGround.transform.position += temp;

任何人都知道如何让堕落工作。我觉得我正在努力使它变得更加困难。

答案 2 :(得分:0)

以下是我最终如何做到这一点。我实际上是将相机从正交切换到透视。布局需要进行大量调整,但最终效果非常好。所以上面的代码我删除了。