ホーリーのプログラミング日記

ホーリーのプログラミング日記

エキセントリック・スーパーアプリクリエイター。プログラミング歴4年。独学。リリース本数:約30本。総ダウンロード数:25万

じょーちょー

 

ザックリ言うと、書いてたコードが冗長すぎて、An expression is too long or complex to compile なるエラーが出たんですよ。

なんですけど、最終的にはテキストファイルを読み込む形で解決出来ました。

えー、これだけだと味気ないので、ブログも冗長に書いていきたいと思います。

 

今から思えば、非常にセンスのないコードを書いてたんですよ。

学習アプリで任意の単語を返すコードなんですが、こんなのを書いてました。

 

public string ReturnKorean(int num) {

    string str = "";

    if (num == 0) {

        str = "요일";

    } else if (num == 1) {

        str = "월요일";

    } else if (num == 2) {

        str = "화요일";

    } else if (num == 3) {

        str = "수요일";

    }

    return str;

}

 

引数を指定すると、それに対応した文字列を返す、みたいな。

 

今日までわりとこんなの書いてたんですけど、これがめっちゃ長くなってしまったんですよね。

お恥ずかしながら、1000を超えて1500、、、んで韓国語と日本語のダブルだから3000超えて、、、

まあめっちゃ書いてしまったわけですよ。

 

そしたらAn expression is too long or complex to compileってエラーが出て動かないんですよね。

Unityでビルド出来なくなってしまいました。

 

途中から薄々感づいてたんですが、コードが冗長すぎる。

どう考えてもアプローチがおかしいことに気付いたので、どうするのか考えました。

 

んで、結論はテキストファイルの読み込みですよ。

なんか風の噂では聞いてたんですよね。テキストファイル読み込めるって。

 

なので、あれこれググってみたら、テクノモンキーさんのブログがヒット。

【Unity】テキストファイルを読み込む方法 - テクノモンキーのアプリ開発日記

 

このコードを丸パクリさせていただいたら、バッチリでしたよ。

コードの意味は2割くらいしか分かりませんが、元気に動いてくれました。

 

テキストファイルの文字列を改行で区切って、Listに格納。

あとはこんな感じで、任意の文字列を返せるようになりました。

 

public string ReturnKorean(int num) {

    string str = koreanList[num];

    return str;

}

 

しかしこれあれなんですよね。

元々はテキストファイルに書いてあったんですよ。

 

テキストファイルに書く→C#にコピペ、なんてことをしてたんですが、このコピペ作業が全て無駄だった。

てかこの無駄を今日まで相当やってきた模様です。

 

「これ面倒くさくね?」って作業があったら、大体アプローチが間違ってるんですよね。

そういう直感を信じて、ビシバシ手抜きの方法を探さないとダメだなと思いました。

 

P.S.

今回のことで知ったんですが、Unityって色んな形式のファイルを読み込めるんですね。

テキストアセット - Unity マニュアル

 

.txt

.html

.htm

.xml

.bytes

.json

.csv

.yaml

.fnt

 

正直、知ってるのは上2つしかないんですが、jsonとcsvはいずれ使う気がします。

 

サーバーと接続して、あれこれする際にjsonてやつを使った気がするんですよ。

UnityとMySQLが繋がった - ホーリーのプログラミング日記

 

PHPで取得したデータをjsonに変換して、それをC#、つまりUnity側に渡してた気がします。

よく知らないんですけど、jsonやつは便利屋なんですよね。だから、いずれどこかで縁があるでしょう。

 

またcsvなんですけど、これもどこかで縁があるはず。

これこそ、今日までの人生で一度も使ったことないんですよ。

噂は聞いてますよ。隣町の中学にcsvってやつがいて、相当喧嘩が強いらしいみたいな。

 

しかもなんなら県下最大の暴走族、Excelと仲が良くて、ちょいちょい集会に顔出してることも知ってます。

でも、今日まで縁はなかったんですよ。

「会ったらバチバチにいわしてやんよ」みたいなことを言いながら、本当はビビって逃げ回っておりました。

 

でもまあ、どこかで会うことにはなるでしょう。

Excelもcsvも未知ですが、どこかで出くわして、バッチバチにやられるはずです。

 

Unity で CSV ファイルを読み込む方法|こんぶ|note