比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。
#if UNITY_ANDROID && !UNITY_EDITOR
#define ANDROID
#endif
#if UNITY_IPHONE && !UNITY_EDITOR
#define IPHONE
#endif
using UnityEngine;
using UnityEngineUI;
using SystemCollections;
using UnityEngineEventSystems;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
void Update()
{
if (InputGetMouseButtonDown(0)||(InputtouchCount >0 && InputGetTouch(0)phase == TouchPhaseBegan))
{
#if IPHONE || ANDROID
if (EventSystemcurrentIsPointerOverGameObject(InputGetTouch(0)fingerId))
#else
if (EventSystemcurrentIsPointerOverGameObject())
#endif
DebugLog("当前触摸在UI上");
else
DebugLog("当前没有触摸在UI上");
}
}
}
1、打开Unity,新建一个空工程。
2、在百度上搜索下载XLua,导入Unity工程中。
3、新建一个Lua脚本,内容大概为打印一个消息,设置几个变量,然后保存为“CSCallLualuatxt”。
4、在工程中,新建一个脚本,可以命名为“MyCSCallLua”,双击脚本或者右键“Open C# Project”打开脚本。
5、在打开的脚本“MyCSCallLua”编写代码,首先引入XLua命名空间,然后设置Lua环境变量。
6、运行场景,即可在控制台上看到,获取Lua脚本变量成功的打印。
注意事项:
Unity 是一个用纯C语言编写的测试工具 它简洁实用,多应用于嵌入式系统Unity工具可以裁剪用于各种规模的嵌入式项目,当然,只要是纯C语言的项目,Unity都可以使用。
你的inputnameLabel是什么类型的?还有inputnameLabel在场景中绑定的是哪一个控件?
其实可以直接把inputnameLabel声明为UILabel类型,然后在场景中和UIlabel控件绑定,然后代码里直接写inputnameLabeltext就行。
还有我记得UILabel好像是不能做输入的,你可以直接用Input控件。
以上就是关于unity 怎么识别鼠标点击在ui上全部的内容,包括:unity 怎么识别鼠标点击在ui上、在unity5中,用c#脚本如何获取UGUI中Input field中的文本、Unity中,使用UILabel,想获取用户点击确定按钮之前,输入的内容,该怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)