2016-07-15 45 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

如果能爲您工作,請您接受我的答案:)?謝謝! –