「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【Unity】ビルドしたファイルを実行するとNull参照エラーが発生する時の解決方法

【Unity】ビルドしたファイルを実行するとNull参照エラーが発生する時の解決方法をメモ。

[ エラー ]

エディタでは問題なく動作するのに、ビルドしたファイルを実行すると「NullReferenceException: Object reference not set to an instance of an object」エラーが発生する。

[ 原因 ]

Resources.Loadで読み込みが完了していないGameObjectをInstantiateしようとしたことが原因です。Resources.Loadで読み込みたいファイルのサイズが大きすぎると読み込みに失敗してしまう場合があるみたいです。

[ 解決方法 ]

非同期処理でファイル読み込みが完了するまでInstantiateを実行しないようにします。

[ 参考文献 ]

forum.unity.com

【HTML】buttonがcanvasと重なってクリックできない時の解決方法

buttonがcanvasと重なってクリックできない時の解決方法を自分用にメモ。

[ 解決方法 ]

canvas要素のpointer-eventsの値をnoneに設定することで、canvasのクリック判定を無効化することができます。これによりbutton要素をクリックできるようになります。

<canvas id="Canvas" style="pointer-events: none;">
</canvas>

KuromojiとRakutenMAを比較

KuromojiとRakutenMAを簡単に比較してみました。

[ 比較 ]

Kuromoji

  • 日本語の文を形態素に分割できる。
  • 中国語の文を形態素に分割できない。
  • 分割した単語の品詞を取得できる。
  • 分割した単語の原型を取得できる。
  • 分割した単語の読み方を取得できる。
  • 解析モデルのアップデートができない。

RakutenMA

  • 日本語の文を形態素に分割できる。
  • 中国語の文を形態素に分割できる。
  • 分割した単語の品詞を取得できる。
  • 分割した単語の原型を取得できない。
  • 分割した単語の読み方を取得できない。
  • 解析モデルのアップデートができる。

はてなブログにGoogle Search Consoleを導入する方法

はてなブログGoogle Search Consoleを導入する方法を記事にしました。

[ 導入方法 ]

下記サイトにアクセスします。
search.google.com
「今すぐ開始」をクリックします。

「URLプレフィックス」に対象のブログのURLを入力して「続行」をクリックします。

「その他の確認方法」にある「HTMLタグ」をクリックします。

すると下記のようなメタタグが表示されるので、そのメタタグ内のcontentをコピーします。下記の場合だとcontentはabcdefghij_0123456789_abcdefghijになります。

<meta name="google-site-verification" content="abcdefghij_0123456789_abcdefghij" />

はてなブログの「設定」から「詳細設定」に進みます。「解析ツール」の「Google Search Console(旧 Google ウェブマスター ツール)」にペーストして「変更する」をクリックします。

【JavaScript】RakutenMAを使って形態素解析をする方法

RakutenMAを使って形態素解析をする方法を記事にしました。

[ 方法 ]

ライブラリのダウンロード

下記リンクをクリックしてRakutenMAのライブラリをZipファイルでダウンロードします。
https://github.com/rakuten-nlp/rakutenma/archive/master.zip

環境構築

フォルダを作成してフォルダ内に「index.html」ファイルを作成します。

作成したフォルダに先ほどダウンロードしたZipファイルに入っている「rakutenma.js」「model_ja.js」「hanzenkaku.js」を移動します。

HTMLファイルの作成

「index.html」に下記のプログラムをコピペして保存します。下記はテキストエリアにある文章を形態素解析し、その結果をコンソールに出力するプログラムです。

<html lang="ja">

<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="./rakutenma.js" charset="UTF-8"></script>
    <script type="text/javascript" src="./model_ja.js" charset="UTF-8"></script>
    <script type="text/javascript" src="./hanzenkaku.js" charset="UTF-8"></script>
</head>

<body>
    <textarea id="Input">僕はプログラミングが好きです。</textarea>
    <br>
    <input type="button" value="実行" onclick="Tokenize_Sentence()">
</body>

<script>

    function Tokenize_Sentence()
    {
        var InputValue = document.getElementById("Input").value;
        var OutputValue = "";

        var RakutenMA_ = new RakutenMA(model_ja);
        RakutenMA_.featset = RakutenMA.default_featset_ja;
        RakutenMA_.hash_func = RakutenMA.create_hash_func(15);
        var Tokens = RakutenMA_.tokenize(InputValue);
        for(var i = 0; i < Tokens.length; i++)
        {
            console.log(Tokens[i]);
        }
    }

</script>

</html>

形態素解析

「index.html」をブラウザで開いて「実行」ボタンをクリックすると、コンソールに下記のように解析結果が出力されます。

【JavaScript】多重ループから簡単に抜け出す方法

多重ループから簡単に抜け出す方法をメモ。

[ 方法 ]

ラベルを使うことで多重ループから抜け出すことができます。下記は「i * j * k > 500」が「true」になった時に3重ループから抜け出すプログラムです。

LabelTemp: for(var i = 1; i < 11; i++)
{
    for(var j = 1; j < 11; j++)
    {
        for(var k = 1; k < 11; k++)
        {
            if(i * j * k > 500)
            {
                break LabelTemp;
            }
        }
    }
}

【JavaScript】Kuromojiを使って形態素解析をする方法

Kuromojiを使って形態素解析をする方法を記事にしました。

[ 方法 ]

ライブラリのダウンロード

下記サイトにアクセスします。
github.com
「Code」から「Download ZIP」を押してKuromojiのライブラリをZipファイルでダウンロードします。

環境構築

フォルダを作成してフォルダ内に「index.html」ファイルを作成します。

作成したフォルダに先ほどダウンロードしたZipファイルに入っている「kuromoji.js」「dict」を移動します。

HTMLファイルの作成

「index.html」に下記のプログラムをコピペして保存します。下記はテキストエリアにある文章を形態素解析し、その結果をコンソールに出力するプログラムです。

<html lang="ja">

<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="./kuromoji.js" charset="UTF-8"></script>
</head>

<body>
    <textarea id="Input">僕はプログラミングが好きです。</textarea>
    <br>
    <input type="button" value="実行" onclick="Tokenize_Sentence()">
</body>

<script>

    function Tokenize_Sentence()
    {
        var InputValue = document.getElementById("Input").value;
        var OutputValue = "";

        kuromoji.builder({dicPath: "./dict"}).build((Error, Tokenizer) => 
        {
            var Tokens = Tokenizer.tokenize(InputValue);
            for(var i = 0; i < Tokens.length; i++)
            {
                console.log(Tokens[i]);
            }
        });
    }

</script>

</html>

形態素解析

「index.html」をブラウザで開いて「実行」ボタンをクリックすると、コンソールに下記のように解析結果が出力されます。

Access to XMLHttpRequest at ''」エラーが発生してプログラムを実行できない場合は下記サイトを参照してください。
edunity.hatenablog.com