unity3d 手柄输入怎么判断鼠标左键输入

当前位置: >
Unity3D点击鼠标按键代码
时间: 08:34 来源:Unity之家 作者:unity.jb51.net 浏览:
在unity中,大多数情况会用到鼠标按键。我们为大家介绍鼠标按键的一些操作。首先:Input.GetMouseButton 获取鼠标按钮c#代码如下:void&Update()&{
&&&&if&(Input.GetMouseButton(0))
&&&&&&&&Debug.Log(&点击了左键&);
&&&&if&(Input.GetMouseButton(1))
&&&&&&&&Debug.Log(&点击了右键&);
&&&&if&(Input.GetMouseButton(2))
&&&&&&&&Debug.Log(&点击了中间按键&);
}JS 代码如下:function&Update()&{
&&&&if(Input.GetMouseButton(0))
&&&&&&&&Debug.Log(&点击左键&);
&&&&if(Input.GetMouseButton(1))
&&&&&&&&Debug.Log(&点击了右键&);
&&&&if(Input.GetMouseButton(2))
&&&&&&&&Debug.Log(&点击了中间按键&);
(责任编辑:脚印)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity入门 ??????6791人阅读
Unity3D(3)
&Unity3D使用input类控制用户的输入,输入包括了用户键盘,鼠标,触摸,重力感应以及地理位置输入等输入方式。
&&&&&本节我们介绍Unity3D中如何监听用户的鼠标、键盘输入。
&&&&&首先我们介绍一个很重要的类KeyCode,此类中的值记录各种按键,详细键码参照Unity圣典:。
一.键盘的输入
oGetKey,GetKeyDown,GetKeyUp三个方法分别获取用户键盘按键的输入
& & &GetKey:用户长按按键有效;
& & &GetKeyDown:用户按下按键时有效;
& & &GetKeyUp:用户抬起按键时有效;
public class Test1 : MonoBehaviour {
void Update ()
    {
        bool down = Input.GetKeyDown(KeyCode.Space);
        bool held = Input.GetKey(KeyCode.Space);
        bool up = Input.GetKeyUp(KeyCode.Space);
        if(down)
        {
               GUI.Label(new Rect(100,100,400,100),&down&);
         }
        else if(held)
        {
               GUI.Label(new Rect(100,100,400,100),&held&);
        }
        else if(up)
        {
               GUI.Label(new Rect(100,100,400,100),&up&);
        }
        else
        {
               GUI.Label(new Rect(100,100,400,100),&else&);
        }
       
    }
o&anyKey,anyKeyDown
anyKey用于监听用户的任意按键输入或鼠标点击,事件触发后返回true。anyKeyDown:当任意按键松开时返回true。
public class Test2 : MonoBehaviour {
     void OnGUI(){
          if(Input.anyKey){
               GUI.Label(new Rect(100,100,400,100),&测试任意按键&);         
          }
     }
oGetButton(string&buttonName)
GetButton用于监听Button的输入,参数为自己指定的button的名字,在Unity中可以使用管理器添加或修改Input参数。unity已经为用户预设了多种输入情况,在button中预设了Fire、Jump等输入情况。用户也可以自行修改,打开Edit--&Project & Settings--&Input可以看到预设如下:
以Fire1为例,可以看到使用左ctil键或者鼠标左键控制Fire1按钮。
public class Test3 : MonoBehaviour {
     void OnGUI(){
          if(Input.GetButton(&Fire1&)){
               GUI.Label(new Rect(100,100,400,100),&测试按钮点击&);         
          }
     }
GetButtonDown( 当某个按钮被按下的那一帧返回true)
GetButtonUp( 当某个按钮弹起时返回true)两个方法,就不详细介绍了。
二.鼠标的输入
omousePosition
& & &Input.mousePosition返回当前鼠标的位置,这里指的是距离原点的像素位置,说明一下,Unity中的原点(0,0)位置为左下角,上位y轴正方向,右为x轴正方向。返回值类型为Vector3。
public class mono2 : MonoBehaviour {
     void OnGUI(){
               GUI.Label(new Rect(100,100,400,100),&x=&+Input.mousePosition.x+&  y=&+Input.mousePosition.y+&  z=&+Input.mousePosition.z);         
     }
当用户移动鼠标是即可显示x,y坐标,z为0。
oGetMouseButton
GetMouseButton 对应的键处于按下状态时返回true
&&&&&&&&&&GetMouseButtonDown 对应的键被按下时返回true
&&&&&&&&&&GetMouseButtonUp 对应的键弹起时返回true
public class mono2 : MonoBehaviour {
     void OnGUI(){
&span style=&white-space:pre&& &/span&
GUI.Label(new Rect(100,100,400,100),&X=&+Input.GetAxis(&Fire1&)+&Y=&+Input.GetAxis(&Fire1&));
          if(Input.GetMouseButton(0)){
          GUI.Label(new Rect(100,100,400,100),&鼠标左键按下&);
          }else if(Input.GetMouseButton(1)){
          GUI.Label(new Rect(100,100,400,100),&鼠标右键按下&);
          }else if(Input.GetMouseButton(2)){
          GUI.Label(new Rect(100,100,400,100),&鼠标中键按下&);
          }
在例子中可以看出参数为int型,含义为:0左键,1右键,2中键。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:104061次
积分:1887
积分:1887
排名:千里之外
原创:87篇
转载:11篇
(3)(5)(49)(27)(14)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'当前位置: >
判断鼠标或者手指是否点击在UI上
时间: 08:38 来源:互联网 作者:网络 浏览:
比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。 void&Update(){
if&(Input.GetMouseButtonDown(0)&)
Debug.Log(EventSystem.current.gameObject.name);
if&(EventSystem.current.IsPointerOverGameObject())
Debug.Log(&当前触摸在UI上&);
else&Debug.Log(&当前没有触摸在UI上&);
}本来想写射线,但是发现原来已经有更好的办法了。感谢网络上的大大们嘿嘿。
(责任编辑:脚印)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity入门 ??????问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在unity3d引擎下,用c#实现按住鼠标左键时能够一直获取坐标,当鼠标在起点线上面时打印"hh1",鼠标按住移到起点线下面时打印"hh2",再按住移到上面时打印"hh1"。求各位大神点拨!
我自己写的失败的代码。。
void Update () {
int x = 0;
location = Camera.main.ScreenToWorldPoint (Input.mousePosition);
location.z = 0;
if (Input.GetMouseButton(0)) {
print("getmouse");
if(location.y&0){
if(location.y&0){
switch (x) {
if(location.y&0){
print ("hh1");
if(location.y&0){
print ("hh2");
2d下起点线,坐标(0,0,0)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我自己这两天终于想出来了!代码如下:
public class NewBehaviourScript : MonoBehaviour {
private static int x=0;
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
location = Camera.main.ScreenToWorldPoint (Input.mousePosition);
location.z = 0;
if (Input.GetMouseButton (0)) {
switch (x) {
if (location.y & 0) {
print ("d1");
if(location.y&0){
print ("x1");
print ("d2");
if(location.y & 0){
print ("x2");
if(location.y&0){
print("down");
}else x=0;
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:}

我要回帖

更多关于 unity3d 输入法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信