カテゴリー: C#

うにのトゲは刺さると痛い(´・ω・`)-26

中学生漢字をちまちま登録したりしなかったり。全くインストールされないので、余りやる気が出なくて作業が進まない(ノ∀`) まあこれは自分用の暇つぶしゲームのフレームワークを構築できたということで良しとするか(´・ω・`)

とりあえずカジュアルゲームっぽいものを作ろうとサンプルやらチュートリアルなどを眺める。


ドラッグ関連

Unity : ドラッグでオブジェクトを動かす
Try Unity _8 マウスドラッグでオブジェクトの移動
Unity5でオブジェクトをドラッグする方法


加速度センサーのサンプル

アプリではなくてただのサンプルというレベルのものだった。
カメラを真上からにしたら、本当の玉転がしゲームみたいな感じ。 確かUnity社のチュートリアルにも玉転がしはあったから、そっちをやってみるか。

[Unity] 3D玉転がしアプリを作る


蟻のタッピングゲーム

ふーん(´・ω・`)くらいのもの。まぁ完全な初心者だったら多少は勉強にはなるかもくらい。自分が間違えたんだか、記述に間違いがあったんだか忘れたが、ちょっとつまづいたような。

Unityで2Dタッピングゲームを構築する方法 - WPJ


ジュエル吸い付けゲーム?

使用するジュエルのアセットの中身がなんか変わっていて、自分でプレハブを用意した。その為か、単純に間違ったのか、なんか挙動がおかしかったw とは言えLineRendererの使い方とか色々と解ったので良かったかな(・∀・)
outのことを完全に忘れていたが、参照渡しか。

チュートリアル映像の内容は英語だったけど、Youtubeの自動字幕+翻訳機能で大体は把握出来た。ただ、翻訳が無茶苦茶な部分があったり、単純に音声を拾って来たものをそのまま字幕にしてるので、間違えた時の訂正の言葉等は結構、理解の妨げになったw もっと言ってしまうと、やっている人が間違えていて、途中で訂正するのは、チュートリアル映像では駄目だろって思ったw


Creating a Casual Jewel Mining Game

Line Rendererについて
Physics.Raycast
out パラメーター修飾子 (C# リファレンス)
参照渡し
UnityのTransformのワールド空間とローカル空間について
unityのtransform.transformDirectionにつ…
【Unity】Transformコンポーネントの便利な関数まとめ


2D Roguelike tutorial

これは文句なしに色々と勉強になったわ(・∀・)
これのチュートリアル映像はトランスクリプトがついていたので、主に文章で内容を把握した(ノ∀`)

これをやるとかなりの知識を得られるので、英語のままじゃもったいないから、終わった後に日本語化してみようかと思ったが、ぐぐってみたら既にあったわ(ノ∀`)アチャー
20150525【Unity7】Unity公式チュートリアル2Dローグライクの導入【2Dローグライク1】

まあでも、"Casual Jewel Mining Game"とこれのチュートリアル映像をこなしたお陰で、これから英語チュートリアルでもやっていける自信につながったから、良しとするか(`・ω・´)


Wallのイメージが一枚足りなかったような気がしたけども、単純に見落としただけかもw

4-1でGameManagerに

        void OnLevelWasLoaded(int index)
        {
            //Add one to our level number.
            level++;
            //Call InitGame to initialize our level.
            InitGame();
        }

という部分があるが、これだとエラーになるんだったかウォーニングが表示されるので、_CompleteフォルダだかにあったGameManagerから以下の

static private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        instance.level++;
        instance.InitGame();
    }
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
static public void CallbackInitialization()
    {
        SceneManager.sceneLoaded += OnSceneLoaded;
    }

というコードを持って来て書き換えた。("using UnityEngine.SceneManagement;"も追加しないと駄目だったはず。)

最初は「2D Roguelike Upgrade Guide 5x.pdf」に書いてあったメソッドを何も確かめもせずに3つとも書いておいたらエラーになった(ノ∀`) いきなり"Day 4"で始まったりw

あと、実際に問題があるのかどうか、原因がそこにあるかどうか確かめていないが、_Completeフォルダの方を完全に削除した。上記の問題の時に何故か_CompleteフォルダのGameManagerがエラーを吐いていたので。

そう言えば、真ん中のノイズのような線はなんだろうか(´・ω・`)

UnityのVector3でよく使うものまとめ
ジェネリック


取り敢えず、しばらくは中学校漢字の追加とチュートリアルをこなしていくかな。

とか言いつつ、そんな悠長に構えていられないので、もう仕事を探さないといけないな(´・ω・`)

うにのトゲは刺さると痛い(´・ω・`)-25

リリースしてすぐに改修すべき点が幾つも見つかったので、色々と修正して1.0.1をリリースした。

最初のリリースの際にはファイルパーミッションを必要としていたせいか、週末だったせいかはわからないが、公開状態になるまでに60時間以上かかったが、今回はほぼ一瞬で終わった。新たに他のパーミッションを要求してない修正だったからかな?

だがしかし、ストアの掲載内容に関しては、今回も50時間以上経過してもアップデート処理が終了にならない(´・ω・`)

こっちは人間がチェックしてるのだろうか?


結局、オーバーレイ表示は視認性が低いので、詳細表示にすることにした。36枚モードだとかっこ悪い感じになってしまったが、キニシナイ(・3・)

あと

  • 前回は小学校2年生分までだった漢字の読み仮名と対応する(もしくは近い)意味を持つ英単語の情報を小学校6年生分まで追加した。
  • 漢字とExcelのApplication.GetPhoneticで無理矢理つけた怪しい読み仮名一つのみの中学校で習う漢字を追加した。
  • 日本地図を追加した。
  • IMGUIで無理矢理表示していたメニューダイアログ、結果ダイアログ、ハイスコアダイアログを、普通のGameObjectで作ったダイアログもどきに変更した。
  • タイトル画面での設定項目を詳細設定ダイアログもどきに移した。
  • 国旗・国名モード以外でも裏面を分けられるようにした。

考えてみるとオーバーレイ表示絡みとIMGUIダイアログには非常に長い時間と労力を費やした気がしないでもないが、まあ致し方ない……(ヽ'ω`)

日本地図カードセットに利用した無料素材サイトと官公庁サイト:
白地図の一覧
平成29年全国都道府県市区町村別面積調_国土地理院
総務省統計局 2- 2 都道府県別人口と人口増減率


そういえば、Google Playのアプリページの権限の項目で、このゲームで使用するファイルアクセス以外にネットワークアクセスが載っていて、まあそれ自体はadmobで広告表示をしているから、それはそれでいいんだけれども、インストール時に許可を求められなかったなぁ…とちょっと疑問に思った。

Google Playサービスの方で権限を得ているということなんだろうか? 作ったゲーム側でネットにアクセスする場合は新たにユーザーの許可を得ないといけないのかな?


毎回パスワードを求められてうざい(´・ω・`)

リリース版をビルドする時に証明書関連でパスワードを設定したが、このために修正時にビルド&ランしようとするたびに毎回パスワードを要求されるようになったヽ(`Д´)ノ  ← まあこれは当然の挙動だけれども

その回避方法は、「Keystore」セクションの[Key]の[Alias]を"Unsigned(debug)"に戻すだけでいいらしい。

参考:
UnityのAndroidビルド時にkeystoreのパスワードを毎回要求しないようにする


あるGameObjectがActiveかどうかを調べる

GameObject.activeSelfで取れた(・∀・)

参考:
【Unity】GameObjectのactive状態を取得するときの注意点


sqliteから小数点以下の数値を取得

sqlite側でcolumnのデータ型は"REAL"、C#側は"Double"。初めはfloatで受けようとしてエラーになった(ノ∀`)

参考:
C#でDataTableのカラムのデータ型を読んでみた
SQLiteの使用方法


フォントの使用方法

フリーの日本語フォントを同梱しようかと考えた。Androidの海外端末で日本語フォントが入っているのか、どう表示されるのかがいまいち解らなかったので(´・ω・`)

だがしかし、イマイチ漢字表示に向いてそうなのを見つけられなかった(というかすぐに諦めた(ノ∀`))為、CJKくらいはきっと標準で入っているんじゃないかなぁという希望的観測によって今回は同梱しなかったw

参考:
【Unity】お気に入りのフォントを追加する!
unityでtextのフォントをスクリプトから変更したい


取り敢えず漢字系のデータを更新しつつ、何処かで見たことがあるようなカジュアルゲームみたいなのを練習として乱発しようか(´・ω・`)

うにのトゲは刺さると痛い(´・ω・`)-24

何はともあれ昨日の夜中にGoole Playで公開申請をしたのだが、ステータスは"公開待ち"のまま。

昔は数時間で公開されていたようだが、最近では凄く時間がかかるらしい。48時間くらいかかる場合もあるらしい(´・ω・`)マチボウケ


漢字を追加した(`・ω・´)

なんやかんやで結局小学生の漢字を追加した。
但し、きちんと加工処理したのは小学2年まで(ノ∀`)

加工処理したものは、以下のように画数やら、出来るだけ入れたふりがな、それに相当しそうな英単語が含まれる。小学3年以上のデータは漢字とApplication.PHoNETICで無理やりつけたふりがな一つだけしか含まれていないが、一応"漢字(未完成)"モードで出現させることが出来る。ただ小学校で習う漢字が1006文字くらいで、48枚セットでも使うのは24文字、更に俺氏の書いた適当ランダムコードもいい加減なので、どのくらいの確率で出てくるかは不明(・∀・) 今は"小1"、"小2"、"小1-2"しか選べないが、いずれカードセットを更新する時にきちんと加工処理して各学年が選べるようにする。まあ現段階でも出来たけど、(未完成)が並ぶのはあれなのでやめておいた(ノ∀`)

参考サイトは
小学校国語
漢字辞典オンライン

英単語については最初Weblioを使用していたが、スクロールすると変なポップアップ(?)が出てくるのが不快でやめたw アルクはちょっと違うものを検索で引っ張ってくる感じだったので、最終的にgooの英和辞書に落ち着いた。まあ、ここにも不満がないわけでもなかったが、検索してページを開いてスクロールする度に不快感を植え付けられることはなかったので、最後までここを利用した(・∀・)アリガトウ、グー

PHONETICのコードは二つのコードをニコイチにした。
というかフリガナではなくふりがなにしただけだったかな。

'A列の漢字のふりがなをC列に入れる。
Sub GetPhonetic_Hiragana()
Dim i As Long, targetKanji As String
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    targetKanji = Cells(i, "A")
    Cells(i, "C") = StrConv(Application.GetPhonetic(targetKanji), vbHiragana)
Next i
End Sub

参考:
http://turedure.cocolog-nifty.com/log/2018/02/vba.html
http://www.moug.net/tech/exvba/0050134.html

何はともあれ、これで漢字系は簡単に増やせるようになったので、カードセットの元ネタには事欠かないな。作成作業が苦痛だが(ヽ'ω`) 追加情報も入れてもいいような、途方もない作業になりそうなのでやめといたほうがいいような。追加情報は漢字よりも原子記号の方が先かな。


Adaptive Iconやらスプラッシュ画面

Android8からはAdaptive Iconとかいうのにしないといけないのか、しといたほうがいいのかよくわからないけれども対応しておいた(´・ω・`) アイコン自体はAndroid Studioのツールを利用した。一応スプラッシュ画面というかUnityスプラッシュ画面に指定した画像が表示されるようにした。

参考:
Adaptive Iconにとりあえず対応する方法
[Android] アイコンを簡単作成できる Image Asset
【Unity】アイコン画像のフォーマット警告:Compressed texture XXX is used as icon. This might compromise visual quality of~ を消す
スプラッシュ画面を手軽にいい感じにする【Unity】


公開手順関連

いくつかのサイトを眺めて、どうにかこうにか公開申請まではした(´・ω・`)チカレタビー

参考:
[Unity] Android アプリを公開する為の設定
【Unity】UnityでのKeystore作成について
【Unity+Android】GooglePlayでのアプリ公開手順まとめ
Google Play での Android アプリの配信方法(インストールとアップデート)を試してみる


その他

PAINT.NETで縦書き出来るようにするプラグイン
dpy's plugins No9

コンポーネントが存在するかどうかを見る
ってなんで調べたんだっけかと一瞬悩んだが、思い出した(`・ω・´)
新規ゲームを何度も繰り返すと必ず65000 vertices云々のエラーが出たので、ぐぐってみたら、以下のページがヒット。
Bug: Mesh can not have more than 65000 vertices

うちの問題とはなんかちょっと違う感じだったけれども、動的に追加しているoutlineの挙動が怪しいのかもなぁと確認してみたら、新規ゲームを実行する度にoutlineを追加していた(ノ∀`) それによって65000以上になっていたのかな? というわけで上記のページに従ってoutlineコンポーネントの有無を確認し、ない場合にのみ追加するようにした。


はよ公開状態にならんかのぅ(´・ω・`)

公開状態になったら、ちゃんとダウンロード出来るか、インストール出来るか、ゲームに不具合がないかを確かめたい(`・ω・´) ←最後のは公開前にやりなさいよ(´・ω・`)

うにのトゲは刺さると痛い(´・ω・`)-23

またしてもWindows Updateのせいでシステムクラッシュした(ヽ'ω`)
さすがに更新プログラムを停止状態にした。

Win7機のノートPCからのアップデートは駄目なのか、SSDに換装しているのがいけないのか知らんけど、毎月毎月、半日以上も復旧作業に従事しなければならないのはもう沢山。

もう一台、64bit機が入手できて環境構築出来たら、元のHDDでアップデートを試してみるか。まあでも、無理してWindows10を使い続けなくてもいいような気がしないでもない。一台あればいいわけだし。


何はともあれ、そろそろリリースするか(´・ω・`)

とりあえず、かなとアルファベットと原子記号のカードセットを適当実装した。
追加情報は余力がないのでなしにした(ノ∀`)
つーか原子記号の話については色々と再勉強しないと手も足も出ない気がする。原子量の出し方が同位体の存在確率(?)によって左右されるなんて知らなかった(´・ω・`)


配色はいずれどうにかしないとアレだな…(ヽ'ω`)

参考:
元素記号
小型の元素周期表
原子量
元素記号一覧表


なぜか知らんが真っ白に(´・ω・`)

うちの環境だけの話か、なんか設定を間違えているのか、あるテキストコンポーネントだけ、値を指定しても真っ白になる。なんだろう、なんの問題だろうか。


もうこのまま出してもいいのかもしれないけれども、今後のことを考えて「小学1年生が覚える漢字」カードセットを追加しよう。あとはadmobを本番用にしたり、配布ページの文言とか作らなければ(´・ω・`) 最低でも今週中にリリースしたい。

え、バグ(´・ω・`)?
今年は猛暑だったから、そんなに活動してないと思うよ(・∀・)アンマリマジメニテストシテナイノハナイショ