/// <summary> /// 対象が選択されたとき /// </summary> /// <param name="eventData"></param> public void OnSelect(/*BaseEventData eventData*/) { bool isPassword = input.contentType == ContentType.Password; id = WebGLInputPlugin.WebGLInputCreate(input.fontSize, input.text, input.placeholder, input.lineType != LineType.SingleLine, isPassword, !showHtmlElement); PreviousRect = GetScreenCoordinates(input.RectTransform()); SizeChanged(); instances[id] = this; WebGLInputPlugin.WebGLInputEnterSubmit(id, input.lineType != LineType.MultiLineNewline); WebGLInputPlugin.WebGLInputOnFocus(id, OnFocus); WebGLInputPlugin.WebGLInputOnBlur(id, OnBlur); WebGLInputPlugin.WebGLInputOnValueChange(id, OnValueChange); WebGLInputPlugin.WebGLInputOnEditEnd(id, OnEditEnd); WebGLInputPlugin.WebGLInputTab(id, OnTab); // default value : https://www.w3schools.com/tags/att_input_maxlength.asp WebGLInputPlugin.WebGLInputMaxLength(id, (input.characterLimit > 0) ? input.characterLimit : 524288); WebGLInputPlugin.WebGLInputFocus(id); WebGLInputPlugin.WebGLInputEnableTabText(id, enableTabText); WebGLInputPlugin.WebGLInputSetReadOnly(id, input.ReadOnly); WebGLInputPlugin.WebGLInputSetName(id, name); if (input.OnFocusSelectAll) { WebGLInputPlugin.WebGLInputSetSelectionRange(id, 0, input.text.Length); } WebGLWindow.OnBlurEvent += OnWindowBlur; }
void Update() { if (input == null || !input.isFocused) { return; } var rect = GetScreenCoordinates(input.RectTransform()); if (rect != PreviousRect) { PreviousRect = rect; SizeChanged(); } if (!instances.ContainsKey(id)) { OnSelect(); } else if (!WebGLInputPlugin.WebGLInputIsFocus(id)) { WebGLInputPlugin.WebGLInputFocus(id); } var start = WebGLInputPlugin.WebGLInputSelectionStart(id); var end = WebGLInputPlugin.WebGLInputSelectionEnd(id); if (WebGLInputPlugin.WebGLInputSelectionDirection(id) == -1) { input.selectionFocusPosition = start; input.selectionAnchorPosition = end; } else { input.selectionFocusPosition = end; input.selectionAnchorPosition = start; } input.Rebuild(); }