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

如果能为您工作,请您接受我的答案:)?谢谢! –