UnityのShift_JISエンコード、エディタで動くのにiOS/Android実機だとObject reference not set to an instance of an object.

全角文字か半角文字を判別しようと

...
using System.Text;

public class MainMenu : MonoBehaviour
{
...
static Encoding shiftjisEnc = Encoding.GetEncoding("Shift_JIS");

public void checkStr(string str)
{
if (shiftjisEnc.GetByteCount(str) == 1)
{
...
}
...
}
...
}

みたいなのを使っていて、シミュレーターで動かすと普通に動いている。

iPhoneやAndroidの実機に転送して
MainMenu mainMenu = gameObject.GetComponent<MainMenu>();
みたいなので、上のコードが入ったスクリプトを取得したら
mainMenuがnullのままになっていて、
mainMenu.checkStr("あ");
みたいにしたところで、
Object reference not set to an instance of an object.
で落ちる。

シミュレーターだと動くのにデバイスで落ちる。
c#のSystem.Text;なのに。動かない。c#標準のシステムライブラリではないのか。動かない。

デバイスで動かないなら、エディタでもエラーにするとかWarning出すとかしてよ∑(゚Д゚)

UnityのShift_JISエンコード、エディタで動くのにiOS/Android実機だとObject reference not set to an instance of an object.
トップへ戻る