单击物体显示信息框

“帧”真的是unity初学者的坑啊;稀里糊涂的以为懂了,结果在这个弹框问题上一直耗了一个月的样子都没有结果。幸运的是,今天从书上找到了答案。

private bool flag;//判断鼠标是否在物体上
private bool _isclick;//判断鼠标是否单击了

void Start () {
        flag = false;
        _isclick = false;

}

 public void mousein()   //这里通过给需要显示提示框的设备添加eventrigger组件,然后添加相应的OnPointerEnter函数来调                                     用mousein函数;注意,为3D物体添加触发器,还需要给camera添加PhysicsRayCaster组件,否则无                                      法检测鼠标的位置。
    {
        flag = true;
        Debug.Log(flag);
    }
    public void mouseout()
    {
        flag = false;
        _isclick = false;
        Debug.Log(flag);
    }
    void OnGUI()
    {
       
        if (flag)
        {
            if (Input.GetMouseButtonDown(0))//从这开始就涉及到帧的概念,OnGUI函数每帧都会调用,但是变量的值只要在某一帧的时候发生改变后,就会一直保持该值,不会受帧的影响。
            {
                _isclick = true;
            }
            if (_isclick)
            {
                GUILayout.BeginArea(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 300, 350));
                GUILayout.BeginHorizontal("Box");
                GUILayout.BeginVertical();
                GUILayout.Label("设备名称:");
                GUILayout.Label("设备型号:");
                GUILayout.Label("设备功能:");
                GUILayout.EndVertical();
                GUILayout.BeginVertical("Box", GUILayout.Width(200));
                GUILayout.TextField("123");
                GUILayout.TextField("123");
                GUILayout.TextField("123");
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
                GUILayout.EndArea();
            }
        }
    }
}

最终效果图如下,单击物体显示提示框!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值