EventSystem.current.IsPointerOverGameObject(); //返回一个布尔值,进入了UI上就返回true,用的时候要 using UnityEngine.EventSystems; 1.写一个脚本挂到相机上,如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class…
命名空间 :UnityEngine.EventSystems 官方描述: public bool IsPointerOverGameObject(); public bool IsPointerOverGameObject(int pointerId);        //触摸屏时需要的参数,即检测触碰的手值   Is the pointer with the given ID over an EventSystem object?   代码: using UnityEngine; using…
"EventSystem.current.IsPointerOverGameObject()" UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define I…
用UGUI做的UI,比如按钮,点击一下,后面的3D物体也会接收到点击事件! 1.UGUI自带的防穿透代码: if (EventSystem.current.IsPointerOverGameObject()) { return;//为真,则点击在UI上 } 在3D物体的点击事件里加上上述代码 测试有效! 如果你要穿透效果,比如一张图片在按钮前面勾掉Raycast Target即可 如果要改变透明度,点Color,它的RGBA,把A调小…
比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法. #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #e…
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class ClickTest : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update()…
public bool isPointUI(){ PointerEventData eventDataCurrnt = new PointerEventData (EventSystem.current); eventDataCurrnt .position = new Vector2(Input.mousePosition.x,Input.mousePosition.y); List<RaycastResult> results= new List<RaycastResult>(…
最近使用高德地图 JavaScript API 开发地图应用,提炼了不少心得,故写点博文,做个系列总结一下,希望能帮助到LBS开发同胞们. 项目客户端使用高德地图 JavaScript API,主要业务为以区县为基础自由划分区域,并将划分好的区域存入数据库,以作后续操作. 开发之初便遇见一个问题,客户可以在城市区县范围内自由划分自己需要的区域,但是高德地图并未提供自定义区域的实现方法,所以只能借助API自造轮子. 经过讨论得出一个实现方法,初始加载城市区县区域后,自定义折线对象,然后在区域内通过…
判断点在直线上,实际上就是判断点到直线上的垂直距离.点到直线垂直距离为0,则点在线上.当然也可以误差设置误差几个像素. 参考资料并进行修改:http://blog.sina.com.cn/s/blog_5d5c80840101bnhw.html //判断点是否在直线上 public static bool GetPointIsInLine(PointF pf, PointF p1, PointF p2, double range) { //range 判断的的误差,不需要误差则赋值0 //点在线…
脚本里使用OnGUI(),在鼠标按下时出发EventType.MouseDown事件,此时如果观察Event.current.mousePosition的坐标原点时左上角,即鼠标按下的点越靠近左上角,Event.current.mousePosition就越接近(0,0): 而ugui的 canvas内的坐标系是以左下角为原点的,这样当两种坐标在一起使用时就需要把其中一个坐标用屏幕的高度Scree.height减去y才行.…
EventSystem   The EventSystem is a way of sending events to objects in the application based on input, be it keyboard, mouse, touch, or custom input. The EventSystem consists of a few components that work together to send events. Overview When you ad…
QT判断鼠标是否在某子窗口控件上方 需要注意的是,子窗口获取geometry,是相对于父窗口的相对位置,QCursor::pos()获取的是鼠标绝对位置,要不将父窗口的相对位置进行换算,要不将鼠标的绝对位置进行换算,这里本文采用将鼠标绝对位置换算到控件上,示例代码如下: if(ui->groupBox->geometry().contains(this->mapFromGlobal(QCursor::pos())))…
如何判断当前Linux系统是否安装在VMware上面呢? 因为公司大部分服务器位于VMware上,也有小部分系统部署在物理机上面.今天老大要求统计一下VMware和物理机上服务器的数量,个人简单测试.验证了一下,当然也测试验证了多台服务器,但是限于手头的VMware版本以及Linux版本,不代表所有环境都是正确的,下面是演示一下测试结果: 1: 命令vir-what检测 [root@mylnx01 ~]# virt-what vmware 如果Linux服务器位于VMware上面,那么这个命令会…
Lightning Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2465    Accepted Submission(s): 912 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4305 Description: There are N robots standing on the…
刚好碰到有人问怎样把粒子特效放到 UI 上并且能正确被 Mask 裁剪, 首先想到给粒子效果的 Shader 添加模板模仿一般 UI 的模板方式, 应该就能正确裁剪了吧, 不过没那么简单, 我们看到在一般 UI 上, 没在 Mask 下的 UI 对比在 Mask 下的 UI, 它们的材质设置是不一样的, 也就是说有哪个组件对材质进行了修改, 查了一下就是 Mask 组件, 它会收集子节点下的所有对象, 然后对可以修改的材质进行修改, 所以才能自动控制裁剪. 为了搞清楚, 这里做了一下测试: 1.…
在unity中处理UI事件时,习惯了使用NGUI的UIEventListener,虽然UGUI也有AddListener,但是一个组件只能对应一个函数,不能在一个函数中同时处理多个事件,显得有些麻烦 因为主要平时Button用得比较多,这里以UGUI的Button为例,自己以UGUI的Button的AddListener模仿NGUI的UIEventListener做了一个小封装,能在一个函数处理多个Button using UnityEngine; using UnityEngine.UI; u…
1. Grid Layout Group(网格布局) Hierachy: Game: 属性和功能: 2. 根据鼠标位置旋转界面实现: public class TiltWindow : MonoBehaviour { public Vector2 range = new Vector2(5f, 3f); Transform mTrans; Quaternion mStart; Vector2 mRot = Vector2.zero; void Start () { mTrans = transf…
1. 创建炮塔选择的 UI 使用 UI -> Toggle .注意指定同一 group. 2. 创建炮台的数据类 [System.Serializable] // 序列化 public class TurretData{ public GameObject turretPrefab; // 炮塔模型 public int cost; // 建造炮塔花费 public GameObject turretUpgradedPrefab; // 升级炮塔模型 public int costUpgrade…
判断鼠标是否点击在UGUI上 #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #endif using UnityEngine; using UnityEngine.UI; using System.Collections; using UnityEngine.EventSystems; public clas…
这几天在做捕鱼达人游戏时发现,当鼠标点击UI时,炮台的子弹也会发射子弹,这样会影响用户体验. 然后网上百度了一波,发现在UGUI系统上,EventSystem提供了一些方法.那就是EventSystem.current.IsPointerOverGameObject()方法,作用:判断鼠标是否点击在UI上.因此,我们可以在开火前做一个判断 )&& EventSystem.current.IsPointerOverGameObject()== false) { //生成子弹 } 这样就行了.…
using UnityEngine; using System.Collections.Generic; using DG.Tweening; using UnityEngine.EventSystems; using UnityEngine.UI; public class testUI : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IDragHandler, IEndDragHan…
http://blog.csdn.net/lyh916/article/details/50947026 1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上). Ignore Reversed Graphics:是否忽略反方向的图形,如果为true,则表示图形正面展示时,会接收到射线检测:反面展示时,不会接收到射线检测:否则,正反面展示都会接收到射线检测 Bloc…
Unity5.0 EventSystem事件系统的详细说明 一.EventSystem对象的说明 当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSystem,可以看到该对象下有三个组件:EventSystem.StandaloneInputModule.TouchInputModule,后面两个组件都继承自BaseInputModule. EventSystem组件主要负责处理输入.射线投射以及发送事件.一个场景中只能有一个EventSystem…
简述 最近在用UGUI的时候遇到了鼠标穿透的问题,就是说在UGUI和3D场景混合的情况下,点击UI区域同时也会 触发3D中物体的鼠标事件.比如下图中 这里给Cube加了一个鼠标点击改变颜色的代码,如下 view sourceprint? 1.void Update() 2.{ 3.if(Input.GetMouseButtonDown(0)) 4.{ 5.GetComponent<Renderer>().material.color = new Color(Random.value, Rand…
//点击屏幕自对对焦 #if UNITY_EDITOR )) #elif UNITY_ANDROID || UNITY_IPHONE && Input.GetTouch().phase == TouchPhase.Began) #endif { Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO); } EventSystem.current.…
跪求官方UI系统(2014年11月底已出,用原生的比用NGUI放心) uGUI注意点 1.要防止多个canvas叠加点击穿透,canvas里面的graphics raycaster调整到恰当选项 2.防止canvas在物体上层,点击canvas却穿透到物体上,触发物体的点击的事件.请參见以下演示样例代码 using UnityEngine; using System.Collections; public class button : MonoBehaviour { public void On…
unity上 用 做游戏欢迎界面上通用的ui,然后导到游戏里面直接用,但发现游戏里面是用ngui的,点击ugui 的ui 会穿透过去 ngui会响应,原本模型的点击处理也会响应 我用的 unity 版本 是 4.6.3的 本来是用   EventSystem.current.IsPointerOverGameObject()   来检测点击穿透的 在pc的unity编辑器上都可以检测到.可是打包到android 上 就无效,网上有的说以前的版本可以,不知道是不是之后的bug,还是有其他的接口 在…
void Update() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log("当前没有触摸在UI上"); } } void OnMouseDown() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log("当前没有触摸在UI上"); } } bool IsTouchedUI…
) || (Input.touchCount > && Input.GetTouch().phase == TouchPhase.Began)) { #if UNITY_ANDROID || UNITY_IPHONE ).fingerId)) #else if (EventSystem.current.IsPointerOverGameObject()) #endif Debug.Log("触摸"); else Debug.Log("非触摸")…
比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法.     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #if UNIT…