【Unity】InputFieldのテキストが一部書き換えられない

非常にニッチな不具合があったのでメモ。

InputFieldは入力用の機能だけど初期値なんかで値を入れたいこともある。

よくあるミスのTextクラスの書き換えではなく、ちゃんとInputFieldの書き換えを使って以下のようなコードを使った。

Unityエディタ上では正しく動作し、アプリにしてAndroid実機で確認すると inY に当たるものだけ書き換わらなかった。

色々試したところ inY は最初の書き換えだけ成功してその後の書き換えはできない状態だった。

単純ミスも見つからないし、エディタ上で動く以上は何らかの不具合だろうと考えて処理を分けてみた。

すると問題なく動作するようになった。

必ず inY のみが書き換えられなかったので、計算の処理と書き換えの処理が入り混じっていたことが原因かもしれない。

 

【Unity】TextureFormatをスクリプトで変更する

Texture2Dのサイズ(スケール)を変更したかったので TextureScale を使用したところ、変換出来るものと以下のエラーで出来ないものがあった。

Unsupported texture format - needs to be ARGB32, RGBA32, RGB24, Alpha8 or one of float formats

 

Resources.Load メソッドを使って読み込んだ画像テクスチャをスケール変換できるフォーマットに変更したい。

続きを読む 【Unity】TextureFormatをスクリプトで変更する

【Unity】Resources.LoadAllによる一括読込の注意

Resources.LoadAll(“フォルダ名”);

これだけでフォルダ内のファイルを一括読み込みすることができる。

大量の画像を並べて選択したいときなんかに重宝する。

Unityのバージョンの変化とかで手間取ったので覚書。

続きを読む 【Unity】Resources.LoadAllによる一括読込の注意

【Unity】画像を移動、拡縮・回転するスクリプト

指1本でドラッグ、指2本でピンチイン・ピンチアウトするスクリプトの紹介。

以前にも似たような覚書を書いてます。

こういった数学系のスクリプトって嫌いな人は書きたくもないだろうし、コピペで済ませられれば他に注力できますね。

続きを読む 【Unity】画像を移動、拡縮・回転するスクリプト

【Unity】シェーダーでTextにテクスチャを貼り付ける

カラフルでポップな文字を使いたい。

けどビットマップフォントを用意するのも面倒。

シェーダーの勉強を兼ねて試行錯誤してみる。

続きを読む 【Unity】シェーダーでTextにテクスチャを貼り付ける

新アプリ「カラーチェンジ」をリリース

新アプリ「カラーチェンジ」をリリースしました。

続きを読む 新アプリ「カラーチェンジ」をリリース

新アプリ「音の形」をリリース

新アプリ「音の形」をリリースしました。

続きを読む 新アプリ「音の形」をリリース

Android「パッケージが破損しているようです」の原因

あるアプリのインストール時に「パッケージが破損しているようです」と出てくる。

同じAPKでも機種によって問題なくインストールできたので機種依存っぽい。

APKファイルが破損している場合もあるけど、その場合の大体は別のメッセージになる。

 

今回は OtherSettings の Package Name に問題があった。

問題のアプリは、まだアプリ名を決めておらず「jp.co.narumium」としていた。

これまで「jp.co.narumium.xxxx」としてたのでココでエラーが起きていた模様。

適当な接尾辞をつけたら解決した。

 

Unity2017でビルドができない状態の解決法

Unity2017.1系でビルドを行おうとすると以下のようなメッセージ(詳細は状態によって少し変わる)が現れる。

 

エラーメッセージで調べるとこんなIssueが見つかる。

とりあえずまだ解決してないみたい。

 

他にも Android Studio のバージョンが新しいとSDKが対応していないので、SDK下の tools をここのRevision25を置き換えると良いという話もある。

※AndroidSDKは標準で C:/Users/_ユーザ名_/AppData/Local/Android/sdk

 

もっと簡単な原因として、Assets下にビルドしようとしてもこのエラーが出る

2017.1系だとビルド場所がデフォルトでAssets下なので、そのまま保存しようとしている可能性もあります。

 

【Unity】タイマーアプリを作るための経過時間取得

タイマーを作るためにはまずアプリが終了していても通知する仕組みが必要。

次にアプリを再起動したときには全てリセットされるので残り時間の管理をしつつ、経過時間を取得する必要がある。

今回は経過時間の計算方法メモ。

続きを読む 【Unity】タイマーアプリを作るための経過時間取得