2016-03-31 5 views
0

Ich mache einen endlosen Jumper. Ich versuche, die BG auf der Höhe der Spieler nach unten zu scrollen.Wie bekomme ich Hintergrund, um mit der Player-Höhe in Einheit zu blättern?

Ich habe Code gesehen, die den Code mit einer bestimmten Geschwindigkeit bewegt:

public float speed = .5f; 

void Updated(){ 

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

Ich will es mit der Höhe des Spielers bewegen.

public float PlayerHeight; 

So jetzt muss ich die Höhe der BG einstellen. Ich kann mir nicht vorstellen, wie ich diesen Teil machen soll.

Transform background; 
public float backgroundHeightY; 
public GameObject BackGround; 

von hier bin ich fest. Ich möchte nicht, dass es sich mit der Kamera bewegt, sondern mit einer bestimmten Geschwindigkeit, die auf der Höhe des Players basiert. Jede Hilfe wäre großartig.

+0

Warum berechnen Sie nicht den Unterschied in der Playerhöhe zwischen den Frames und addieren oder subtrahieren Sie diesen Wert dann zur aktuellen Position Ihres Hintergrunds? – Zze

Antwort

0

Hier ist, wie ich das endlich getan habe. Ich habe die Kamera tatsächlich von orthographisch auf perspektivisch umgeschaltet. Es brauchte eine Menge Optimierungen im Layout, aber es funktionierte perfekt. Also der Code den ich oben habe habe ich gelöscht.

0

Es klingt, als hätten Sie einen Hintergrund, der eine feste Position relativ zur Kamera hat, aber Sie möchten, dass der Hintergrund "gegen" den Spieler rollt, wenn er sich auf und ab bewegt, was einen Parallaxeffekt ergibt?

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; 
} 
+0

Das ist richtig. Wie binde ich das an die BG BG? –

+0

Ich bekomme diesen Fehler jetzt: Material Textureigenschaft _MainTex hat Offset/Maßstab festgelegt. Es ist nicht kompatibel mit Sprite Render –

+0

Sie müssen einen regulären MeshRenderer (wahrscheinlich ein Quad) verwenden, wenn Sie dies verwenden möchten. –

0

Ich habe es funktioniert gut gehen, aber nicht nach unten. Hier ist, wie es funktioniert. Ich habe den backgroundModifier so angepasst, dass er dem Timing entspricht, das ich brauche.

Jeder hat eine Idee, wie man den Fall zur Arbeit bringt. Ich fühle mich, als würde ich das härter machen, als es sein muss.

Verwandte Themen