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

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

個人アプリ開発者。プログラミング歴3年。独学。現在の総ダウンロード数:14万

UnityとMySQLが繋がった

 

めっさ短い話。

 

昨日話してたランキング機能なんですけど、これ出来ましたよ。ランキングそのものっていうわけではないんですが、とりあえずUnityとサーバーを接続して、データを登録したり取得したりすることが出来ました。

ランキング機能を実装してみたいす - ホーリーのプログラミング日記

 

こちらの記事を参考にしてやってみたら、マジで簡単でした。UnityとphpMyAdminが繋がりましたよ。いやー、書いてくださった方には感謝しかありませんw

UnityとMySQLの連携 - LotosLabo

 

まだまだ細かいところは改善が必要なんですが、ザックリ成功したので、もう問題ないですね。ランキング機能は簡単に実装することが出来そうです。

 

===

 

そいや一箇所だけエラーが出たので、自分用にメモしておきたいと思います。

 

string uid = jsonUid.int;

string sex = jsonSex.int;

 

「引数なしのデータ取得」ってところに出てくるこれなんですけど、intのところがエラーになっちゃうんですよね。

んで、これをstrに変えたら、普通に出力することが出来ました。

 

よく分からないんですが、stringはstr、floatはn、boolはbをつけるといいみたいですねw

Unity C# JSONObjectを使って簡単なJSON文字列をパースする

 

string hoge = json.GetField("hoge").str;

float foo = json.GetField("foo").n;

bool moge = json.GetField("moge").b;

ランキング機能を実装してみたいす

 

Just make 10(仮称)がザックリ出来てきました。ただこれ、ちょっと物足りないんですよね。今の時点で問題数は100あるんですが、ただ問題を解くだけでは物足りない。スピードチャレンジみたいな、ユーザー同士が競える機能を追加したいと思っています。

 

 

10問をどれだけの速さで解けるかっていう遊びなんですけど、そういうのを追加したいんですよね。タイムアタックみたいなやつを。

んで、そのタイムがランキングに反映されるみたいなことをしたいんです。

 

えー、なのでやったことないんですが、アプリとサーバーを接続して、それでデータのやり取りをしたいと思います。

これ前にも一度考えたことがあるなと思い、自分のブログを検索してみたら、こんな記事がヒットしました。

Unityにランキング機能を実装したいんだけど、今のところ願望止まりって話 - ホーリーのプログラミング日記

 

このときは願望止まりだったわけですね。自分で言うのもなんですが、いかにも僕らしい。思いはしたものの、サクッと諦めてるところがw

 

ただ、今この記事を見ると、結構出来るんじゃないかと思うんですよね。MySQLとの連携ってやつを見ると。

UnityとMySQLの連携 - LotosLabo

 

ランキングを実装するのって、恐らくfirebaseとかニフティクラウドでも出来ると思うし、これが今どきのやり方だとは思うんですが、やっぱ慣れたphpmyadminがいいんですよね。ちょうど適当なサーバーも余ってるし。

 

えー、そんなわけで、ちょこちょこテストしてみようと思います。

算数の時間でございます

 

4つの数字を四則計算して10を目指すゲーム「Just make 10(仮称)」を作ってるんですが、これ問題を自力で考えるのが大変ですね。

もしかして、何か法則でもあるのかな?それが分からないんで、自力で取り組んでいます。

 

for($i = 0; $i < 4; $i++){

     echo(mt_rand(1, 9));

}

 

PHPで適当に乱数を4つ発生させて、それを画面に出力。んで、解けるかどうかを地道にやってる次第ですよw

 

f:id:gevvoihorry:20180714181440p:plain

 

こんな感じですね。

 

自分がそこまで賢くないので、解けるはずの問題も、露骨にスルーしてる可能性大です。

だから、もしかしたら簡単なパターンばかりになってるかもしれません。

(分数問題を出さない以上、そこまで難しくはならないんですが)

 

んー、何問作るか未定ですが、最低100問は作りたい。

 

 

今のところ、こんな風に動いております。

非常にシンプルなゲームなんで、ササッと完成させたいですね。

 

P.S.

問題数が70問を超えて気付いたんですけど、これって「0」を入れるのありなんでしょうか?

0が入ると急に簡単になるから、やっぱなしかな。そいや0入れてないやって、ふと思ったんですよ。まあいいかw

諦めれば視界良好

 

ただいま4つの数字を四則計算をして10を目指すゲームを作ってるんですが、分数が鬼門だったんですよ。

1919みたいな数字があったとき、1÷9+9×9=10になりますからね。

(数学的には(1÷9)+(9×9)になりますが、これは気にしないでください。あくまでも順番に計算しましょうw)

 

ゲームの性質上、どうしても分数を盛り込みたかったんですが、これあれです。

 

早々に諦めました

 

いやー、人間何事も諦めが肝心ですね。てかよくよく考えたら、1919以外の問題で、分数を考えつきませんでしたよ。なので早々にやめにした次第ですw

 

ゲームをリリースする→反響ある→分数問題のリクエストがある→それから考える

 

って流れで十分でしょう。そもそも僕が出すゲームなんてもんは、9割方反響ありませんからね。これでいいんです。

 

4÷2みたいな整数で割り切れる数に対しては、割り算を適応しますが、そうでない計算については無効にしてみました。

 

はー、肩の荷が下りた。これで一気にリリースまで行けそうです。

 

眼の前の問題を諦めれば、いつだって視界は良好になる。

 

これが私のモットーでございます。

疲れる前に休む

 

「頑張りません、死ぬまでは」をモットーにしてるんですが、久しぶりに疲れてしまいました。そんなわけで、今ちょっとぼーっとしております。

あの、あれなんですよ。若い頃は疲れってものを知らなかったんです。それこそ20代前半までは。

でも、そこから歳を重ねていくにつれ、疲れを感じるようになったんですよね。

 

昼、夜、昼、夜、昼、みたいな、3日間働きっぱなしでも疲れを感じることがなかったんですが、今は丸一日頑張りすぎると普通に疲れますw

 

疲れって、一度感じると抜けるまでに時間がかかるじゃないですか。個人的な体感としては、一度疲れを感じると、それが抜けるまでに数日かかります。

なので、疲れる前に休むことを意識してるんですけど、やっぱ半月に1回は感じますね。「ああ、疲れたな」って感じることがそのくらいはありますよ。

 

今の疲れは「おお。。もうダメだ。。」ってくらい疲れなんで、これは3ヶ月に1回くらいある、完全なる失敗のそれです。

疲れを感じてるのに、そのまま働いてしまったっていう、ダメダメモードですね。

 

===

 

前に小説に書いたんですが、僕は元々かなり休む環境で働いてました。

10代の頃は窓拭きのバイトをしてたんですが、世間一般の人よりは遥かに休んでいたと思います。それは仕事中になんですけど。

 

そもそもの労働時間も短いんですよ。あのバイトって。

 

f:id:gevvoihorry:20180613160218p:plain


(こんなやつですけど)

 

9時から働いて15時には終わる感じなので、世間の人と比べたら相当短いですよね。

前に友達に「それって小学生より短いじゃん」て言われたんですが、まさにそうです。窓拭きの実働時間は小学生よりも短いw

 

しかも休憩長いですからね。10時〜10時半まで30分一服して、11時半から13時まで90分お昼休憩を取るのが一般的です。

そもそもの終わり時間が早いのに、さらに一服しまくる環境なので、まあそんなに働かないんですよ。

でも今思えばなんですけど、このくらいのペースが実は健康的なんじゃないかと思います。疲れを溜めない働き方っていうか。

 

僕の社会経験は、このバイトの4年間だけで、あとは独立して自分で会社を経営してるんですが、仕事時間に対する感覚はバイトしてたときのそれと同じですね。長時間労働をするって頭が、そもそもありません。

でも、逆に丸一日休むってこともないんですよ。毎日そこそこ程度に働いて、休日を設けずに仕事をするっていうのが、自分のスタンダードになっています。

 

んで、冒頭のそれに戻るんですけど、疲れって一度感じると抜けるまでに時間がかかると思うんです。だから、疲れる前の休憩が肝心なんですよね。

これって別に休憩に限らずに、他のことにも言えると思います。汚れる前の清掃ですとか。

「〇〇する前に△△する」っていうのは、実は一番パフォーマンスが高くなると思ってるんですよ。熱中症対策でも喉が渇く前に水分補給をって言いますもんね。

 

めっちゃ疲れて家に帰る。んで寝たとしても翌日には体力全快にならないじゃないですか。若い人は別でしょうけど、中年と言われるような年代に差し掛かると、まず全快はしないと思います。

でも、疲れを感じる前に就寝してれば、翌日には全快してますよ。

 

最近は睡眠時間が大事だって話をよく聞くようになりましたけど、そこに「疲れを感じる前に寝ること」っていうのを、付け加えたいですね。

 

まあ会社にいたら難しいんですけど、それでも出来る限り意識するのがいいんではないかと思います。

毎日ヘトヘトになるまで働いて、それで週末に死んだように眠るっていうのは、そんなにパフォーマンスが良くはならないでしょう。

それよりは、毎日短時間でいいんで淡々と続けた方が効率いいと思います。

 

最高なのは、毎日のやらなければいけない仕事をこなしつつ、他のことにも手をさせる状態。それでいて、そこまで疲れないっていうのがベストですね。

仕事の対する体力配分(気力も含みますけど)は、そのくらいが健全だと思います。

THE 普通目線

 

途中から愚痴になってしまったんじゃないかって話。

 

何かに精通するようになると「普通」からかけ離れることってないでしょうか。

仕事が分かりやすいですかね。プロとして仕事をしてると、どんどん専門知識であったりプロ目線が養われるんですよ。一般の人と比べると、その分野では格段にレベルアップするわけです。

でも、そこで顧客目線を失うことってありがちなんですよね。全ての仕事に通じる「プロあるある」だと思います。

 

「もっとクオリティの高いものを作らねば」なんて勢いで仕事に励むんですけど、顧客が望んでいるのはシンプル&低価格だった。なんていうのが、分かりやすい例でしょうか。

こういうことって、仕事に限らずどこにでも溢れてる話だと思います。

誰しもが自分の得意なことに関しては「普通目線」を失ってしまうんですよね。世間一般のそれが分からなくなるというか。

 

===

 

んで、ここからが自分の話なんですけど、僕は4年くらい前までパソコンすら持ってないIT音痴だったんですけど、さすがに最近はぼちぼち出来るようにはなりました。

「パソコン得意だぜ!」なんてことは言えないですけど「苦手じゃないよ」ってくらいにはなったんですよ。

 

でもそうしてるうちに、いつの間にやら普通の目線を失ってるんですよね。

自分の周りがIT音痴ばかりなんですけど、やっぱ見ててイライラしちゃったりするんですよ。

「いやいや、その検索の仕方はおかしいでしょ。てかキーワードの間にスペース入れようよ」みたいなことを思っちゃうわけです。数年前まで自分もそっち側の人間だったくせに。

 

んで、そう思うたびにハッとするんですよね。いかん、これは自分がクソだと思ったやつに近づいて行ってるな。これじゃダメだなって。

 

パソコン買ったばかりの頃に、一部の知人に言われたんですよ。「そんなことも知らないの?」とか「そのくらい普通分かるでしょ」なんて、馬鹿にされるように言われました。

まあドラッグアンドドロップも知らなかったくらいですからね。てかそれで一度プログラミングを挫折してますしw

俺は超アナログ人間だったんで、プログラミングに2回ほど挫折している。 - ホーリーのプログラミング日記

 

でも、そんな風に言わなくていいじゃないですか。こっちはど素人で右も左も分からないわけですから、知らないのが当たり前なわけですよ。

検索すれば分かりますよ。でもガチのIT音痴には検索っていう考え自体が浮かばないんですよ。

誰しもが最初はそうだったはずなのに、それを忘れて人を馬鹿にするって、最高にダサいと思うんですよね。言葉選ばずに言えば、そんなやつはクソ野郎です。

 

まあ今考えれば、向こうも大してパソコン出来るわけじゃないんですけどね。ネットサーフィンに毛が生えたくらいの実力でしたから。今だから分かることですけど。

プログラミングはおろか、特に何も生み出せない人間が、初心者を馬鹿にしていたわけです。

 

んで、だから思うわけですよ。自分はそうなりたくないと。

どうしたって普通の感覚からはズレていきますよ。「当たり前に知ってるでしょ」のラインが押し上がるのも仕方ない。

でも、だからって知らない人間を馬鹿にするようにはなりたくないんですよね。絶対に。

 

つい上から目線で言っちゃうときはありますよ。「そこはこうだから」って。

でも、その後に後悔するんですよ。今の言い方は、自分が嫌に思ったあれと一緒じゃないかって。

 

どれだけその分野に精通したとしても、出来る限り「普通目線」を保ちたいっていうか、初心を忘れたくないなって思いました。これ書いててそう思いましたよ。

 

P.S.

これちょっと難しいんですけど、「ググれば?」って言うときが頻繁にあるんですよ。僕は知らないけど、検索して調べてみたら?って言うときが。

これが自分の中では微妙な状態なんですよね。検索の習慣を持ってない人にとっては不快に感じるときもあるでしょうし。

まあ、そんなこと考えても仕方ないんですけどw

 

P.S.2

検索繋がりでもう少し。前に「なぜ調べないのか」って言われて嫌な気持ちになったことがあるんですよ。

それはこのブログ記事に対してのコメント、それも全く知らない人なんですけどね。

 

話が非常にザックリになるんですが、Aっていうものを作りたくて、XとYっていうアプローチがあったわけです。

それで僕はXで作りたいんだけど、分からないところが多々あるって書いたんですよ。

そしたらツイッターか何かで「Yでやれば簡単に出来る。なぜ調べないのか」って言われたんですよね。

 

いや、正確に言えば過去記事でXとYについて書いてるんです。それでYでやれば簡単に出来そうだけど、Xでやってみたいんだって書いてたわけですよ。

だから「なぜ過去記事を見ないのか」ってリプライを飛ばしてやろうと思ったんですが、その衝動をぐっとこらえましたw

 

「Bでやれば簡単に出来るよー。すでに知ってたらごめんだけど」みたいに、優しく言ってくれたらいいじゃないですか。

世の中、大体のことはググれば出てきますよ。でも、それを優しく教えてほしいんですw

最悪を避ける

 

銭湯サイトを一旦脇に置いて、四則計算をして10にするゲームを作っております。

とりあえず大体出来たんですよ。ベースのシステムみたいなものは。

 

 

しかしこっからの割り算が面倒臭そうで、ブログに逃げております。

ええ、ただいま絶賛現実逃避中でございますよw

 

===

 

1÷9みたいな割り切れないものは分数で表示したいんですけど、これってそこそこ大変ですよね。

いざやりだせば大変じゃないのかもしれませんが、今は気が重いですw

 

しかも分数の計算には約分や通分もありますしね。調べたら、数学的なアプローチで解決出来るらしいんですが、自分に実装出来るかどうかが分かりません。

C# - C#での分数の計算方法と、帯分数表示、約分、整数表示について。(79597)|teratail

 

まあ何とかなる。何とかはなるだろうと思っています。

プログラミングって最高を求めると挫折しがちなんですよね。そうでなく最悪を避ける、つまり「とりあえず動く」って状態を求めれば、少なくとも前に進んでいけるものだと思います。

これもあれもって手を出さずに、とりあえず確実に出来ることをやっていけば、それが土台になって、次のステップにいけるんですよ。多分。よくは知らないですけどw

 

僕はビリヤードが好きで、20代の頃はビリヤードしかしてなかったんですけど、あれこそ最悪を避けるゲームなんですよ。

眼の前の球を入れて、次の球に対するベストポジションが取れれば最高。でもそれを目指した挙げ句、今入れなきゃいけない球を外したら最悪なんですよね。

だって外したら相手のターンですもん。もう何をされるか分からない。そのまま負けることも普通にある。

 

でも、最悪を避ける、つまりヒーヒー言いながらも目の前の球を落とし続ければ自分のターンなんですよね。

自分のターンである限り、その場は自分のものですもん。入れるのが難しい球だったらセーフティ(守り)も出来る。

相手は椅子に座ってるだけで、何も手出し出来ません。

 

えー、つまり何が言いたいのかと言うと、最悪を避けてれば、そのアプリないしWEBサービスは自分のものだってことですよ。

 

開発は続いてくってことですね。

 

ビリヤードの話がプログラミングに繋がったのかどうか分かりませんが、今日はこれで終わりにしようと思います。