Planeの移動に合わせてテクスチャを移動させる方法
UnityにてHMDを使った実験用のプログラムを作成中です。
その中で, Planeの水平移動に合わせて模様のついたテクスチャをUVスクロールし、
模様がついたPlaneの位置は変化するが模様の場所は変わらない状態を作りたいです。
(模様がついた紙の上で、穴の空いた紙を動かした時みたいな感じです)
問題:Planeの動きとテクスチャの動きが一致しない
課題はPlaneの動きとテクスチャの動きが一致しない(テクスチャの方が速く移動する)ことです。
例:
Speed = 0.25, ObjectWidth = 0.5の時, Planeは一秒間で横幅の1/2前進するので,
Speed / ObjectWidth = 0.5で、1秒でテクスチャをPlaneの横幅の1/2後退させれば良い
と考え以下のコードを書きましたが上手くいきません。
現在のコード
C#
1Speed:移動速度 2ObjectWidth:Planeの横幅 3(前略) 4 void Start() 5 { 6 TargetMaterial = GetComponent<Renderer>().material; 7 Delta = 0; 8 offset = TargetMaterial.mainTextureOffset; 9 offset.x = Speed / ObjectWidth; 10 } 11 12 void Update() 13 { 14 Delta = Time.deltaTime; 15 TargetMaterial.mainTextureOffset -= offset * Delta; 16 transform.position += transform.right * Speed * Delta; 17 }
あなたの回答
tips
プレビュー