2017-01-22 628 views
-4

我有这样一个代码:C#(Unity) - 如何停止函数执行?

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; 
     } 
    } 
} 

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

回答

2

末添加returnif

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; 
    } 
} 
+0

LOL。我尝试过'返回;'之前,它没有工作,但在你回答后我再次尝试它,它的工作。无论如何感谢 – Sharpy

+0

@Sharpy,不客气。 –