今日は未知との遭遇の一日だった。
GitBash と Visual Studio Code !!
まるで専門のプログラマーになったような気分だった。
そうしたいきさつはこう。
今朝は朝起きるなり、気になっていたUnityのプロジェクト「FantasyLand」の手直しをした。
①AIのCopilotさんに頼ってばかりじゃだめだ!自分でコードを理解してないと、複雑になった時に対処できない!と思い、また前に勉強した嗚呼蛙さんのYouTube動画
https://youtu.be/j4DvooqcD7A?si=NrDvaH1KYupj20yV
でスクリプトを勉強しながら、書き直すことに。
移動に関する書き方もいろいろあって、動きかたも少し違っていたりするのを、実際やってみながら覚えるようになっていて、かなり頭がすっきり整理された。
そして、Yotoがスクリプト通りにスイスイ動くところまで行って、次のジャンプのところでまたもや引っかかった。
ここで、やはり頼るのは、AIのCopilotさん。
コライダーのサイズを変えてみたり、地面をテレインからPlaneに変えてみたりしたが、どうやっても着地判定ができなかったのが、うまくできるようになった。
そのコツは、プレーヤーの足元でなく、足元の少し下を判定の基準位置にするのが普通です、というもの。
bool isGrounded(){ //下の一行は足元の座標を表す変数を作成 Vector3 groundCheckPosition = new Vector3(col.bounds.center.x, col.bounds.center.y, col.bounds.center.z); //この下の行は、グラウンドチェックの位置にチェックするための球を作って、グラウンドレイヤーをチェックする
return Physics.CheckSphere(groundCheckPosition, groundCheckRadius, groundLayers); //groundLayersはインスペクターのこのcsの中に項目があり、そこで指定したレイヤーになる}
これを以下のように修正したら、見事にぴょんぴょん飛ぶようになった。
Vector3 groundCheckPosition = col.bounds.center - new Vector3(0, col.bounds.extents.y, 0); // 足元の少し下
return Physics.CheckSphere(groundCheckPosition, groundCheckRadius, groundLayers);
②上手くいくようになったので、ここで一休み。これをGitHubにプッシュすることに。
それが、今日のトラブルの元になろうとは!!!
なんと、先日も一度なったのと同じように、プロジェクトの中身がすべて消えた!
プッシュする瞬間に、Mainではない他の文字が見えたのが、時すでに遅し。指はプッシュしてしまったあと。ヒストリーには残っていないし、Changedにも残っていないが、どこかに消えてしまった。
そこまでも、嗚呼さんに教えてもらいながら、スクリプトを書くこと数時間。
それが水の泡になった。が、そこからがまたまた大変だった。
こういう時に頼れるのはCopilotさんしかない。
どこに消えたのか、そのFantasyLandのシーンを探す長い旅の始まりだ。
③そこから、教えられるままに、行ったことは、わたしにとっては未知の世界。
GitHubDeskTopだけでは探せないので、GitBashで探しましょうということに。
で、GitBashなるものをインストール、そして黒い画面に向かって、教えられる通りにコマンドを打ち込む。これだめなら、次はこれ、という具合にコマンドを書いた。
そして、ついに消えたプロジェクトのシーンが隠れている場所を特定。
④その次に、インストールしたのが、VisualStudioCode。これはいつもスクリプトを書いているVisual Studioとは違うもので、これも新規にインストールしなくてはならないとのこと。もうこの頃には、当初の目的がなんだったのかも分からないくらい、頭の中が飽和状態。しかし、最後までやらないと、今朝の努力が無駄になってしまう。
VisualStudioCodeのほうでも、Unityエディターにでているエラーの箇所を探す作業。
その途中で、エラーの起こっている原因として、FBXファイルのサンプリングレートがおかしい、、ということになり、今度はBlender(これはもともとインストールされていた)にUnityでつかっているFBXファイル(YotoのFBXで良かったのかな・・・)をいったんインポートして、1.0になっていたサンプリングレートを60に変更。そしてそれをまたエクスポートしてUnityに戻す作業。もう何をなんのためにやっているのか、ほんとに分からない状態だったが、いわれる通りにやってみた。
こういう作業ですら、どこに問題のタブがあるのかもわからなくて、いちいちAIに聞きながらだから、すごい時間を消費した。
⑤そうやって、エラーやらコンフリクトやら、トラブルの元になりそうなものを消していき、最後に消えていたシーンを取り戻し、朝の作業の終了時点にもどることができた。
⑥そして、それは今まで残してきたGitHubのMainでなく、Branchに保存することを教えてくれた。origine_recovery_branchとういうブランチを作って、そこに保存。今後はしばらく、そっちで作業することにする。
大変な一日だった。