unity多碰撞器对象触发单物体发生多次触发现象的问题解决


  产生这种原因是这个对象上有多个碰撞器,可能会多个碰撞器同时触发,以至于触发函数运行多次,解决这个问题,我们可以将触发函的运行内容设置为给一个布尔类型赋值,这样不论返回几次,返回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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM