如果对象上的Alpha是黑色,我想播放一个协例程,如果Alpha是白色,我想播放另一个协例程。这将从公共场所调用。
所以基本上,我有一个对象,当单击另一个对象时,它会淡入。现在,当单击另一个对象时,我希望该对象淡出,但前提是它已经淡入。
public void fade()
{
if objectname.material.color = (1f, 1f, 1f, 0f);
StartCoroutine(OPTION1());
if objectname.material.color = (1f, 1f, 1f, 1f);
StartCoroutine(OPTION2());
}
答案 0 :(得分:1)
由于每个对象都是唯一的(不是静态的,并且每个实例都是共享的),因此您可以添加一个属性来防止任何类型的递归或重复调用...内部设置标志并在完成时清除...类似
private bool _isFading;
public void fade()
{
// Is the fading already doing its thing? If so, get out
if( _isFading )
return;
// nope, not yet, first time in, set flag to prevent subsequent calls
// against this same object
_isFading = true;
if objectname.material.color = (1f, 1f, 1f, 0f);
StartCoroutine(OPTION1());
if objectname.material.color = (1f, 1f, 1f, 1f);
StartCoroutine(OPTION2());
// reset now that the fading is complete
_isFading = false;
}