Esempio n. 1
0
        void Start()
        {
            canvas       = main.root;
            prePos       = main.anchoredPosition;
            canvasHeight = canvas.GetComponent <RectTransform>().rect.height;//这一步不能放在Awake 会造成数值不准确 因为Canvas的Awake调用顺序的原因
            SetMaskRect();
#if UNITY_EDITOR
            //测试软键盘弹出
            testKeyboard = GameTools.GetNewImage(canvas, "TestKeyboard", Vector3.zero, Vector2.zero, Vector2.zero, new Vector2(1, 0), new Vector2(0.5f, 0), Vector3.zero, Vector3.one).GetComponent <RectTransform>();

            Button closeBtn = GameTools.GetNewButton(testKeyboard, "closeBtn", "关闭软键盘", Vector3.zero, new Vector2(100, 50), Vector2.one, Vector2.one, Vector2.one, Vector3.zero, Vector3.one);
            closeBtn.onClick.AddListener(() => MobileInput.OnShowKeyboard(false, 0));

            Text text = GameTools.GetNewText(testKeyboard, "text", "我是测试移动端的虚拟键盘!", Vector3.zero, new Vector2(500, 50), new Vector2(0.5f, 1), new Vector2(0.5f, 1), new Vector2(0.5f, 1), Vector3.zero, Vector3.one);
            text.fontSize = 30;
#endif
        }
Esempio n. 2
0
        private void LateUpdate()
        {
            //使用MouseButtonUp和LateUpdate 而不使用MouseButtonDown和Update会造成bug 困扰
            //是为了防止点击main上的按钮  而MouseButtonDown先调用下移main再调用Button的响应事件 按钮下移造成点不到按钮 不会触发按钮的点击事件
            if (Input.GetMouseButtonUp(0) && keyboardHeight != 0)
            {
                if (RectTransformUtility.RectangleContainsScreenPoint(testKeyboard, Input.mousePosition) == false)
                {
                    if (EventSystem.current != null && EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent <MobileInputField>() != null)
                    {
                        return;
                    }

                    MobileInput.OnShowKeyboard(false, 0);
                }
            }
        }