2016-07-15 10 views
1

おはようございます。ユニティC#アニメーションプロパティ変更スプライト

アニメーションプロパティ(スプライト)で、C#で特定のフレームのスプライトを変更する方法は? オブジェクトをレンダリングするスプライトを取り、スプライトフィールドに配置するが、実行を変更しない関数を呼び出すことによってイベントを配置しようとしました。 彼はそれをアニメーションで定義して実行します。私はそこに直接変更しようとしていますが、やり方は分かりません。

お願いします!

答えて

2

私が見て研究した限り、あなたは現在それをすることはできません。

私が以前にしてお勧めした最も良い回避策は、スプライトの配列と各フレームから次のフレームへの切り替え用のタイマーを持つCustomAnimationClipスクリプトのようなものを作成することです。次に、配列を編集して、いつでもアニメーションのスプライトを変更できます。ここ

は一例です:

SpriteRenderer spriteRenderer; 
public Sprite[] frames; 

[SerializeField] int fps; 
int currentFrame = 0; 

float frameTime; 
float frameTimer = 0; 

void Awake() 
{ 
    spriteRenderer = GetComponent<SpriteRenderer>(); 
} 

void Start() 
{ 
    frameTime = 1/(float)fps; 
    spriteRenderer.sprite = frames[0]; 
} 

void Update() 
{ 
    if (frameTimer < frameTime) 
    { 
     frameTimer += Time.deltaTime; 
    } 
    else 
    { 
     spriteRenderer.sprite = frames[currentFrame]; 
     currentFrame = (currentFrame + 1) % (frames.Length); 
     frameTimer = 0; 
    } 
} 
+0

私がしようとします ありがとう。 は私が必要とするものです:D –

+0

それはあなたのために働いた場合私の答えを受け入れてください:)?ありがとうございました! –

関連する問題