2016-03-31 7 views
0

私は無限のジャンパーを作っています。私は選手の身長に基づいて下にスクロールする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; 

ここから出ました。私はそれをカメラで動かすのではなく、プレーヤーの高さに基づいて一定の速度で動かしたいと思っています。どんな助けも素晴らしいだろう。

+0

フレーム間のプレーヤーの高さの差を計算し、この値を背景の現在の位置に加算または減算してみませんか? – Zze

答えて

0

これは私が最終的にどのようにしたかです。私は実際にカメラを正書法から視点に切り替えました。レイアウトには多くの調整が必要でしたが、完全にうまく動作しました。上記のコードを削除しました。

0

カメラを基準にして背景が固定されているように聞こえますが、背景を上下に動かすときに背景を「反対」にして、視差効果を与えたいとしますか?

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

それは正しいです。しかし、これをBG BGにどのように結びつけるのですか? –

+0

このエラーが発生しました。マテリアルテクスチャプロパティ_MainTexにオフセット/スケールが設定されています。これはスプライトレンダリングと互換性がありません –

+0

これを使用するには、通常のMeshRenderer(おそらくクワッド)を使用する必要があります。 –

0

私はうまくいっていますが、ダウンしていません。ここでそれがどうやって上がっていくかがわかります。私は必要なタイミングに合わせてbackgroundModifierを調整しました。

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

落ち着かせる方法については誰でも知っています。私は、これを必要以上に困難にしているように感じます。