Unity社交功能开发——移动端输入法回车事件响应
来源:互联网 发布:网络预算表 编辑:程序博客网 时间:2024/06/14 03:00
一、叙叙旧
最近工作比较忙好久没有更新博客了,笔者并没有忘记博客也没有忘记大家。游戏大概下月初就上线了,我会逐渐把做过的研究过的事情都分享出来。
二、回车事件
今天就先分享下Unity游戏输入法在移动端的回车事件如何捕获。大家在用Unity开发聊天模块的时候,都会发现一件事情,为什么别家的游戏或者应用可以输入完之后点一下回车按键就能发送,而Unity的输入框不行。其实Unity也是勉强可以的,今天笔者就把Unity回车事件捕获的代码分享给大家。
三、Unity中的虚拟键盘
unity中的虚拟键盘是通过TouchScreenKeyboard这个类提供的接口UGUI、NGUI同理,如果非常精通移动端开发的同学可以试试能不能自己写一个软件盘,笔者时间紧任务重只能通过Unity给的接口下手,所以我们需要运用虚拟键盘这个类实现捕获移动端的回车事件。
四、上代码
using UnityEngine;using UnityEngine.UI;using System.Collections;using System.Collections.Generic;using System.Text;using UnityEngine.Events;using System;using UnityEngine.EventSystems;using UnityEngine.Serialization;//笔者通过集成InputField,在update中监听软件盘的状态捕获到回车事件public class SubmitInputField : InputField{ [Serializable] public class KeyboardDoneEvent : UnityEvent { } [SerializeField] private KeyboardDoneEvent m_keyboardDone = new KeyboardDoneEvent(); public KeyboardDoneEvent onKeyboardDone { get { return m_keyboardDone; } set { m_keyboardDone = value; } } void Update() { if (m_Keyboard != null && m_Keyboard.done && !m_Keyboard.wasCanceled) { m_keyboardDone.Invoke(); } }}
using UnityEngine;using System.Collections;using UnityEditor;using UnityEngine.UI;using UnityEditor.UI;[CustomEditor(typeof(SubmitInputField), true)][CanEditMultipleObjects]//这段代码要放在Unity的Editor目录下public class SubmitInputFieldEditor : InputFieldEditor{ SerializedProperty m_KeyboardDoneProperty; SerializedProperty m_TextComponent; protected override void OnEnable() { base.OnEnable(); m_KeyboardDoneProperty = serializedObject.FindProperty("m_keyboardDone"); m_TextComponent = serializedObject.FindProperty("m_TextComponent"); } public override void OnInspectorGUI() { base.OnInspectorGUI(); EditorGUI.BeginDisabledGroup(m_TextComponent == null || m_TextComponent.objectReferenceValue == null); EditorGUILayout.Space(); serializedObject.Update(); EditorGUILayout.PropertyField(m_KeyboardDoneProperty); serializedObject.ApplyModifiedProperties(); EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); }}
五、注意
笔者提供的方法只能在IOS上完美实现,在Android上接口类似于OnEndEdit
笔者比对了很多大厂做出来的游戏《全民超神》、《王者荣耀》、《六龙争霸》等,他们的实现方法只是运用的OnEndEdit,笔者的方法可以在IOS上完美监听回车事件。
好了就到这里,再见吧!
1 0
- Unity社交功能开发——移动端输入法回车事件响应
- Unity社交功能开发——语音聊天
- Unity社交功能开发——图片上传
- 产品设计 用户体验优化之兼容PC与移动端的回车搜索响应事件设计
- Ext.js学习(一)——回车事件响应
- winform响应回车事件
- 按钮响应回车事件
- JS响应回车事件。。
- 回车响应事件
- jquery响应回车事件
- input 响应回车事件
- FMALV********响应回车事件
- SharePoint 2013 开发——其他社交功能
- 指定回车的响应事件
- 监听回车响应按钮事件
- 在服务器端响应回车事件
- jquery 禁止回车事件响应
- 社交媒体(朋友圈、微博、QQ空间)开发一网打尽,PC端移动端都有!——源码来袭!
- 从头认识多线程-4.1 对象的发布(Publish)、逸出(Escape)以及逸出的解决方案
- poj 1159 Palindrome
- 2016 计蒜之道 初赛 第五场
- java(递归)
- STL容器迭代过程中删除元素技巧(转)
- Unity社交功能开发——移动端输入法回车事件响应
- java中泛型的理解
- Java for Web学习笔记(二三):EL(3)EL的视图
- 深入解析Spring架构与设计原理(二)AOP原理
- Python下UnicodeEncodeError编码错误的解决
- Java千百问_03基础语法(017)_static有什么用
- 一款将MP3格式嵌入PPT的软件
- 命令行建立无线WiFi
- 51nod 1001 数组中和等于K的数对