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

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

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

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

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

  if(InPut.GetMouseButtonDown(0)) {

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

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

    if(collider != null){

      Debug.Log("点击了");  //点击的对象 collider.gameObject

    }

  }

}

  

   

时间: 2024-10-05 18:45:42

Unity3D判断不规则范围内是否存在一点的相关文章

ios的hitTest方法以及不规则区域内触摸事件处理方法

ios的hitTest方法以及不规则区域内触摸事件处理方法 概述 在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton.UIControl.一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的.但是在一些特殊应用场景中我们有时不得不面对这样一种比较严苛的需求,比如要求程序只对某个圆形.五角形等非常规区域的点击事件进行处理,这就需要花点功夫了.本文以圆形为例子来介绍此类场景的处理方法. 先看下面一张图(附图1),我们的目标是实现如下自定义tabbar.中间带突起圆形

判断访问者是内网访问还是外网访问

//域登录  判断是内网还是外网请求 public function regip($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地

Unity3D判断鼠标向右或向左滑动,响应不同的事件

private var first = Vector2.zero; private var second = Vector2.zero; function Update () { } function OnGUI () { if(Event.current.type == EventType.MouseDown) { //记录鼠标按下的位置 first = Event.current.mousePosition ; } if(Event.current.type == EventType.Mou

Unity3d 判断物体是否在可见范围内

unity中自带两个回调函数: void OnBecameVisible()//当物体可见时,回调一次. void OnBecameInvisible()//当物体不可见时,回调一次. 在untiy编辑器中,无论调试窗口还是编辑窗口,只要能看到物体,OnBecameVisible都会被调用

javascript 判断对象的内置类型

判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.在toString方法被调用时,会执行下面的操作步骤:1. 获取this对象的[[Class]]属性的值.2. 计算出三个字符串"[object ", 第一步的操作结果Result(1), 以及 "]"连接后的新字符串.3. 返回第二步的操作结果Result(2).Object.prototype.toString方法返回的字符串,去掉前面固定的"[

如何快速判断IP是内网还是外网(转)

TCP/IP协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0-10.255.255.255 172.16.0.0/12:172.16.0.0-172.31.255.255 192.168.0.0/16:192.168.0.0-192.168.255.255 使用保留地址的网络只能在内部进行通信,而不能与其他网络互连.如果要与外部通信,那么必须通过网关与外部通信,这里使用了NAT, NAPT技术就是用来保证通信的代理机制. 提示:上述IP地址

Unity3D判断当前所在平台

Unity3D是一个跨平台的开发工具,支持的平台五花八门,常常开发一款游戏要发布到不同的平台,在不同的平台上会使用不同的代码,难道要我们各平台分别使用一套代码,单独编译一次吗?当然不用了,呵呵.    Unity3D有一个功能叫平台依赖编译(Platform Dependent Compilation),它可以让我们简单地使用if...else...对不同平台的代码进行区分,当我们切换一个发布平台重新编译时,Unity3D使用自动编译相应代码,从而省去了繁琐的操作.    下边举一个例子: 1

unity3d 在android手机内读取assets目录内的资源

Unity3d版本(v4.6.3) android手机内读取包内文件只能使用www的方式, 文件协议为 "jar:file://" + Application.dataPath + "!/assets/" 1.必须有jar:开头 2.assets前有个!不能丢 3.目录路径分隔符不能有 \ 4.由于读取只能使用www的方式,故同时导致无法对assets内的文件进行遍历,若涉及到需要把资源拷贝到本地目录,则只能写一个记录文件,通常为一个文件名一行,如: aaa/bbb

Firefox 对条件判断语句块内的函数声明的处理与其他浏览器有差异

标准参考 函数声明和函数表达式 定义一个函数有两种途径:函数声明和函数表达式. 函数声明: function Identifier ( FormalParameterList opt ) { FunctionBody } 函数表达式: function Identifier opt ( FormalParameterList opt ) { FunctionBody } ECMAScript 根据上下文来区分函数声明和函数表达式,假设 "function test(){}" 是一个表达