Unity DF-GUI 中文输入以及自动换行

这篇博客介绍了在Unity的DF-GUI系统中,如何实现dfTextbox的中文输入以及dfLabel和dfRichTextLabel的中文自动换行功能。同时,作者推荐了其老师的人工智能教程,适合零基础学习者,旨在通过分享知识来推动技术发展,助力中国梦。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       在使用Daikon Forge GUI过程中,发现dfTextbox编辑框无法输入中文,dfLabel和dfRichTextLabel文本控件中文无法自动换行。对源代码进行了更改,以便支持中文。不同版本可能更改的地方会不同,这边的版本为Daikon Forge GUI 1.0.15,Unity 4.3.1。

dfTextbox中文输入

当前无法输入中文,是因为没有开启Input.imeCompositionMode IME组合方式。打开 dfTextbox.cs文件,添加以下方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     protected  internal  override  void OnGotFocus( dfFocusEventArgs args )
    {

        Input.imeCompositionMode = IMECompositionMode.On;

         base.OnGotFocus( args );

    }

     protected  internal  override  void OnLostFocus( dfFocusEventArgs args )
    {

         base.OnLostFocus( args );

        Input.imeCompositionMode = IMECompositionMode.Auto;

    }
效果图:



dfLabel和dfRichTextLabel中文自动换行

文本控件中文无法自动换行,是因为DF-GUI只把英文进行分词,方式是遇到空格就分词,这边要加上中文的处理,即遇到中文就要进行分词。打开 dfMarkupTokenizer.cs文件,添加一个扩展方法,用来判断是否中文,代码如下:
1
2
3
4
5
6
7
8
9
public  static  class CharExtensions
{
     public  static  bool IsChinese( this Char ch)
    {
        var low =  '\u4E00';
        var high =  '\u9FA5';
         return ch.CompareTo(low) * ch.CompareTo(high) <=  0;
    }
}
修改以下方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值