Unity3D判断不规则范围内是否存在一点

//该方法的前提,不规则的范围已经用Collider2D给画出来了

  //举个栗子:判断是否点击了某个不规则的游戏对象

 

   LayerMask SomeLayer = LayerMask.GetMask("layer名");

  //这个SomeLayer是重点,这里表示游戏对象所在layer,一般要事先命名一个layer层,把游戏对象的layer层设为该层

  if(InPut.GetMouseButtonDown(0)) {

  Vector mousePoint = Camera.Main.ScreenToWorldPoint(InPut.mousePosition);

  mousePoint.z = 0;

  Collider2D collider = Physics2D.OverlapPoint(mousePoint,SomeLayer){

    if(collider != null){

      Debug.Log("点击事件");  //获取对象 collider.gameObject

    }

  }

}

 注意当Physics2D.OverlapPoint()方法参数只写一个Vector3参数时,会判断这个点有没有在一个碰撞区域,返回Collider或者Collider[]或者null,

  

   

posted @ 2016-10-09 01:04  binbins  阅读(3167)  评论(0编辑  收藏  举报