C#(Unity) - 如何停止函数执行?

C#(Unity) - How to stop the function execution?

我有这样的代码:

    public void Interacted(){
    if (GameObject.Find ("Sara").GetComponent<controls> ().isIntered) {
        if (Interer.name == "sinkTop" && !sinked) {
            Interer.GetComponent<SpriteRenderer> ().sprite = sinkON;
            sinked = true;
        }
        if (Interer.name == "sinkTop" && sinked) {
            Interer.GetComponent<SpriteRenderer> ().sprite = sinkOFF;
            sinked = false;
        }
    }
}

如何停止 Interacted()if (Interer.name == "sinkTop" && !sinked) 内执行?

if内的末尾添加return:

if (Interer.name == "sinkTop" && !sinked) 
{
    Interer.GetComponent<SpriteRenderer> ().sprite = sinkON;
    sinked = true;
    return;         //return here.
}

或在第二个if之前添加else:

if (Interer.name == "sinkTop" && !sinked) 
{
    Interer.GetComponent<SpriteRenderer> ().sprite = sinkON;
    sinked = true;
}
else if (Interer.name == "sinkTop" && sinked) 
{
    Interer.GetComponent<SpriteRenderer> ().sprite = sinkOFF;
    sinked = false;
}

此外,您可以重构代码:

if (Interer.name == "sinkTop") 
{
    if (sinked)
    {
        Interer.GetComponent<SpriteRenderer> ().sprite = sinkOFF;
        sinked = false;
    }
    else
    {
        Interer.GetComponent<SpriteRenderer> ().sprite = sinkON;
        sinked = true;
    }
}