產生這種原因是這個對象上有多個碰撞器,可能會多個碰撞器同時觸發,以至於觸發函數運行多次,解決這個問題,我們可以將觸發函的運行內容設置為給一個布爾類型賦值,這樣不論返回幾次,返回ture便能進行之后的運算,最后再置為false:
例如:
修改前:
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Collection1")
{
Destroy(collision.gameObject);
Cherry += 1;
CherryNum.text = Cherry.ToString();
}
修改后:
bool istouch = false
private void OnTriggerEnter2D(Collider2D collision)
{
istouch = true
}
if(istouch = true)
{
Destroy(collision.gameObject);
Cherry += 1;
CherryNum.text = Cherry.ToString();
istouch= false
}
