2016-07-13 9 views
0

Unity 2D。私はいくつかのスプライト(雲)が空にうまく浮かぶべきです。基本的には、アニメーションは同じです - 右から左に移動します(X位置を変更します)が、別のY位置になります。 1つのアニメーション/アニメータでこれを達成することが可能かどうかはわかりません。それぞれのクラウドに対して別々のアニメーションを作成する必要がありますか?Unity 2D Yを乱さずにX位置をアニメーション化する方法は?

これまでのところ、1人のアニメーターが同じY位置に常に倒れてしまったため、1人のアニメーターを再利用して失敗しました。だから、クラウドごとに別々のアニメーションを作成することになりましたが、これはちょっと変わったようです。より良い方法がありますか?あなたがアニメーター/アニメーション技術を使用したい場合は

答えて

0

- あなたは、単一のアニメーターとアニメーションクリップを使用することができますが、あなただけの絵のように、アニメーションからY posのプロパティを削除する必要があり、ここで我々は唯一のX変数enter image description here

+0

実際には、これは私のためには機能しません。なぜなら、X座標はアニメーション化されているという意味に過ぎませんが、Y座標とZ座標が異なる可能性があるわけではありません。 –

0

を持っていますAnimatorはオブジェクトのTransformを書き込みます。すべてのクラウドに同じアニメーションクリップを使用する場合は、アニメーションで設定したのと同じパスに従います。これが、すべての雲が同じ​​Y位置を共有する理由です。 @Ivzhenko OleksiiはアニメーションクリップのYプロパティを削除する必要があると言っています。

あなたはこのようなものになりますスクリプトを使用することができます:あなたの雲が右から左にX軸方向に移動します

void CloudAnimation() 
{ 
offset += Time.deltaTime; 
newCloudPos = new Vector3 (ActualCloudPos.x - offset, ActualCloudPos.y, ActualCloudPos.z); 

ActualCloudPos = newCloudPos; 
} 

この道を。 クラウドは、あなたがこのような何かTODO必要あなたのscreeenのうち、いくつかのポイントに到達すると:

ActualCloudPos = new Vector3(PlayerPos.x + 30f, RandomValueinY, 1f); 

この方法は、あなたのクラウドは、関数にあなたのプレイヤーと感謝の前に30個の単位を表示します「CloudAnimation」それは彼が開始されます動いているように見える、スクリーンを横切って移動する。

希望します。

+0

ありがとうございます。私はプログラム的な解決策を検討していますが、標準的なアニメーション/アニメーターで可能であるかどうか不思議でした。 –

関連する問題