投稿

4月, 2024の投稿を表示しています

VContainerを触ってみた。その3,注入するInputの変更 (Unity初心者)

 前回まで その1 その2 今回 よくあるPlayerの移動のInputの取得方法を分けてPlayerが参照するInputをDIコンテナ側で注入する際に注入するInputクラスを選ぶことでPlayerの移動方法を変える。 ①InputHandlerインターフェイスを作成 public interface IInputHandler { Vector3 GetInputDirection(); } このインターフェイスを継承してGetInputDirectionでそれぞれの入力の違いを出していく。 ②IInputHandlerを継承したクラスを作成 //方向キーでの移動 public class InputFromArrow : IInputHandler { public Vector3 GetInputDirection() { if (Input.GetKey(KeyCode.UpArrow)) return Vector3.up; if (Input.GetKey(KeyCode.LeftArrow)) return Vector3.left; if (Input.GetKey(KeyCode.DownArrow)) return Vector3.down; if (Input.GetKey(KeyCode.RightArrow)) return Vector3.right; return Vector3.zero; } } //WASDでの移動 public class InputFromWASD : IInputHandler { public Vector3 GetInputDirection() { if (Input.GetKey(KeyCode.W)) return Vector3.up; if (Input.GetKey(KeyCode.A)) return Vector3

VContainerを触ってみた。その2,MVPパターン (Unity初心者)

イメージ
 前回まで 公式リファレンスのHello Worldをやりながら自分なりにまとめた。 <<前回 今回 前回のボタンを持ったViewにTextを追加して、ボタンを押すたびにViewのTextの数字を増やしていく仕様を作った。 MVPパターンでやってみる。 前回作ったクラスに追加していく形にする。 VContainerのテストなのでUniRxとかは使わずにやってみる。 ①HelloScreen(View)にTextを追加。 シーンにTextを追加して、HelloScreen(View)にTextコンポーネントの参照を追加。 またテキストを更新する処理を作った。 public class HelloScreen : MonoBehaviour { public Button HelloButton; public Text countText; //追加 public void UpdateText(int _count) //数字を引数にその数字にテキストを変更 { countText.text = _count.ToString(); } } ②CountUpModel(Model)を作成。 ボタンを押すたびにカウントを上げるので、今のカウントとそのカウントを上げる処理を実装したCountUpModel(Model)を作成した。 public class CountUpModel { int nowCount; //現在のカウント public int NowCount => nowCount; public CountUpModel() { nowCount = 0; } public void CountUp() //カウントを増やす { nowCount ++; } } ③GamePresenter(Presenter)に先ほど作ったCountUpModel(Model)のフィールドを作成。 Presenterに注入するModelのフィールドを作成。 IStartable.Sta

VContainerを触ってみた。その1,HelloWorld (Unity初心者)

イメージ
 はじめに 最近ゲーム作りにおけるデザインパターンなるものを気にしながらゲームプログラムを書いている。その延長上でDependency Injection(DI)なるデザインパターンがあり、Unity上で動作するDIフレームワークのVContainerを使ってみる。 Dependency Injection(DI)とは 直訳すると依存性注入。 DIとは、プログラミングにおけるデザインパターン(設計思想)の一種で、オブジェクトを成立させるために必要となるコードを実行時に注入(Inject)してゆくという概念のことである。 参考: https://www.weblio.jp/content/Dependency+Injection   なぜVContainerなのか もう一つUnityのDIフレームワークで有名なZenjectというものがあり、最初そちらを触ってみたのだが、どうやら調べてみるとVContainerの方がパフォーマンスがいいらしい。 ぶっちゃけ初心者にパフォーマンスの違いとかわからんが、まぁいいと言われているものを使った方がいいだろうということで。 あと、日本語のリファレンスがあって、何か詰まったら調べやすい気がした。 VContainer日本語リファレンス 導入 新しいプロジェクトを作成するか、既存の導入したいプロジェクトを開く。 Packages/manifest.jsonファイルを開く "dependencies": { }内に以下のコードを追記(古くなっている可能性があるので、最新版を上のドキュメントURLからコピーした方がいいです) "jp.hadashikick.vcontainer":"https://github.com/hadashiA/VContainer.git?path=VContainer/Assets/VContainer#1.15.3" これでインポートされるはず。 チュートリアル 公式リファレンスの Hello World をやっていく。 (以下はリファレンス通りにやっているだけなんで飛ばしてOK) 自分

Macでコピペをもっと使いやすくする「Clipy」を使ってみた

 はじめに ブログやプログラミングをしているとコピペをする機会が多いのだが、ある動作をするときに決まってコピペするようなことが結構あって、それをするたびにコピーするのはめんどくさいと思ったので、日頃使っているコピーを覚えておけてすぐにショートカットでペーストできるようなものはないかと思った。 Clipy https://clipy-app.com/ mac使っている人には結構有名? いわゆるスニペットアプリ。 上のURLからダウンロード。 使い方 以下のURLがわかりやすかったです🙏 https://suzu.link/macclipy/

Bloggerの記事にソースコードを埋め込む

イメージ
 はじめに 私はゲーム制作をしているので、プログラミングに関する記事とかを書きます。 その際にソースコードを載せたりとかしたかったのですが、Blogger自体にはソースコードを埋め込むような仕様がなく、普通のテキストのように書く感じになるのですが、よくある感じのソースコード用のフィールドを作ってそこにコードを表示したかった。 Debug.Log("こんな感じ") 手順 ①テーマを選択 ②カスタマイズの三角を選択 ③HTMLを編集を選択 ④headタグに以下のコードを追加 <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst'/> ⑤右上で保存 ⑥ソースコードを埋め込みたい記事を開き、左上でHTMLビューに変更 ⑦埋め込みたい場所に以下のコードをペーストする <pre class="prettyprint"> //ここにコード </pre> 基本的には以上。 参考にさせていただいた🙏 ・具体的な使い方等 https://soichiro.co.jp/blog/google_code_prettify/ https://rfs.jp/sb/javascript/js-lab/code-prettify.html ・表示のデザイン https://rawgit.com/google/code-prettify/master/styles/index.html ・HTMLタグなどを書く際 https://developer.mozilla.org/ja/docs/Glossary/Entity ・コピーボタンをつける https://mizunosame.blogspot.com/2022/09/source-code-copy-button-c

Bloggerの埋め込みリンクをいい感じにする(Iframely)

イメージ
ブログのリンクをいい感じにしたい! というわけで、 やっていきます。 いい感じとは? はてなブログとかやってる人はよくわかると思うけど、 下のようなリンク先のスクショやタイトル、本文のプレビューなどが表示されるリンクをやりたい。 https://teppy-game.blogspot.com/2024/04/first-blog.html (ブログカードっていうみたい) コピペでOK Iframely このサイトで埋め込みたいURLを入れて「Check your URL」を押して、出てきたURLをコピー コピーしたコードをBloggerの記事のHTMLにペーストする  以上! コピペするだけなので、結構簡単にできました。 参考にさせてもらった記事等🙏 【Blogger】ブログカードを表示させる

Figmaでクラス図をさくっと作成

はじめに 私は日頃ゲームのUIやレイアウトを考えるときや作るときはFigmaを活用しています。 今回はこのFigmaを使って、クラス図をさくっと作りたいなと思い調べてみました。 Figmaとは Figmaは、ブラウザ上でUIデザインやプロトタイピングが行えるツールです。WebサイトやモバイルアプリのUIデザインから、資料やバナーのデザインまで、幅広く活用されています。デザイナーにとっては必須のツールになっていますが、非デザイナーの方にとっても情報整理、資料の作成などに活用できます。 また、Figmaはアカウントにログインするだけでブラウザ上で作業することができ、操作性も非常に優れています。また、チームでのコラボレーション機能も充実しており、リモートでの共同作業にも最適なツールです。 日本では2022年に日本語対応が発表され、特にスタートアップ企業での導入が進んでいます。2022年9月にはAdobe社による買収も発表され、今後も拡大を続けていくことが予想されており、最も勢いのあるデザインツールとして導入が進んでいます。  引用: Figmaとは?できることやメリットを解説!   さくっと デザインテンプレートがあればそれを利用させてもらうのが一番手っ取り早いので探してみた。 ありました。 Figmaで効率的にオブジェクトモデルを設計する方法  基本はここに書かれている内容でやっていく感じでいいかな。 Figmaテンプレート取得 シンプルなオブジェクトモデル・コンポーネント / wentz 「Figmaで開く」でプロジェクトが開きます。 開いたら右のプラグインの「Open Autoflow」を押すとプラグインが出てくるので、 この状態でObjectを動かすとちゃんと線も動きます。 以上! あとはなんとなくでする。

ブログ始めました。

 ブログを始めました。 このブログではゲーム開発に関する自分なりの備忘録を残していきます。 まだまだゲーム制作自体始めたばかりの初心者なので、人の役に立てるような記事を執筆できるかは分かりませんが、まだ知らない誰かの助けになれればと気楽に考えながら更新していきます。 コメントも解放しているので、何か間違っていることなどありましたら是非教えていただきたいです。 よろしくお願いします。🙇