LoginSignup
8
3

More than 5 years have passed since last update.

Unityで作ったiOSアプリで'○'や'△'といった記号が入力できないのをなんとかする

Last updated at Posted at 2016-06-12

概要

Unityから出力したiOSアプリで、'○'や'△'といった一部記号や、どうも絵文字も入力できない。
これをなんとかしたい。

試したバージョン

Unity 5.3.4f1, Unity 5.3.5f1(執筆時の最新版)

'○'や'△'を入力できるようにする

Unityから出力したXCode Projectのコード UI/Keyboard.mmstringContainsEmoji を常に NO を返すようにする。

bool stringContainsEmoji(NSString *string)
{
    return NO;

【追記】
UI/Keyboard.mm

#define FILTER_EMOJIS_IOS_KEYBOARD 1

のところを

#define FILTER_EMOJIS_IOS_KEYBOARD 0

にしても上記と同じ効果を得られる模様。
(Unity 5.3.4p1から可能)

どういうこと?

stringContainsEmoji をコールしているところのコメントによると

We need to do this because Unity's UI doesn't provide proper Unicode support yet.

(意訳:UnityのUIはまだちゃんとUnicodeサポートしてないんで絵文字いれられないようにするよ)
とのこと。
UnityのUIが絵文字をサポートしていないのでキーボードから絵文字を入力させないようにしているらしい。

'○'や'△'は絵文字ではないのだけれど、stringContainsEmoji の(多分雑な)実装のあおりを食らって入力ができなくなっているようだ。
stringContainsEmoji で常にNOを返すようにし、'○'や'△'を入力してみると、'○'や'△'といった文字列はちゃんと表示される。

絵文字をいれるとどうなるの?

こうなる。

emoji_unity_ios.PNG

stringContainsEmoji を編集し絵文字をいれられるようにしています)

見事にサポートしていない感じですね。

もうちょっとちゃんと'○'や'△'を入力できるようにする

stringContainsEmoji でつねにNOを返すようにすると、'○'や'△'が入力できるかわりに絵文字を入力できてしまいマズい。
なので stringContainsEmojiGeometric_Shapes(U+25A0-U+25FF)あたりの場合にはNOを返すような実装に変更すれば絵文字は入力できないが、'○'や'△'といった記号は入力できるようになる。

最後に

stringContainsEmoji 関数も実装が雑なのか、一部文字列は入力できてしまったりします…。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3