脚本如下:
<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> CircleExpandImage : MonoBehaviour {
<span style="color: #0000ff">public <span style="color: #0000ff">float timeSeconds =<span style="color: #000000"> 5f;
<span style="color: #0000ff">public <span style="color: #0000ff">float timeInterval = <span style="color: #800080">0.05f<span style="color: #000000">;
<span style="color: #0000ff">public <span style="color: #0000ff">float timeSeconds =<span style="color: #000000"> 5f;
<span style="color: #0000ff">public <span style="color: #0000ff">float timeInterval = <span style="color: #800080">0.05f<span style="color: #000000">;
</span><span style="color: #0000ff">private</span><span style="color: #000000"> Image image;
</span><span style="color: #0000ff">private</span> <span style="color: #0000ff">float</span><span style="color: #000000"> duration;
</span><span style="color: #0000ff">void</span><span style="color: #000000"> Start()
{
gameObject.SetActive(</span><span style="color: #0000ff">false</span><span style="color: #000000">);
image </span>= GetComponent<Image><span style="color: #000000">();
image.type </span>=<span style="color: #000000"> Image.Type.Filled;
image.fillAmount </span>=<span style="color: #000000"> 0f;
image.fillOrigin </span>= (<span style="color: #0000ff">int</span><span style="color: #000000">)Image.Origin90.TopRight;
duration </span>= <span style="color: #800080">0</span><span style="color: #000000">;
}
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> begin()
{
gameObject.SetActive(</span><span style="color: #0000ff">true</span><span style="color: #000000">);
StartCoroutine(DrawCircleImage());
}
IEnumerator DrawCircleImage()
{
Debug.Log(System.DateTime.Now);
</span><span style="color: #0000ff">yield</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span><span style="color: #000000"> WaitForSeconds(timeInterval);
</span><span style="color: #0000ff">while</span> (duration <<span style="color: #000000"> 1f)
{
duration </span>+= 1f / ((timeSeconds - <span style="color: #800080">0.1f</span>) / timeInterval) * <span style="color: #800080">2</span><span style="color: #000000">;
image.fillAmount </span>=<span style="color: #000000"> duration;
</span><span style="color: #0000ff">yield</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span><span style="color: #000000"> WaitForSeconds(timeInterval);
}
Debug.Log(System.DateTime.Now);
}
}
挂到image上,调用begin方法即可。