はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

2021-01-01から1年間の記事一覧

【Unity】変数名を変えてもインスペクターの値を引き継ぐFormerlySerializedAsAttributeについて

はじめに 今回は変数名を変えてもインスペクターの値を引き継ぐFormerlySerializedAsAttribute属性を紹介したいと思います。docs.unity3d.com はじめに 使い方 さいごに 使い方 使い方は簡単で、変更する変数名に属性を追加します。 [SerializeField] privat…

JetBrains Rider2020.1.3以降は日本語化対応されていない件(2021/9/7)

はじめに 久しぶりにRiderを導入して日本語化対応しようとしたらつまづいてしまいました。 Riderはいいぞ! from UnityTechnologiesJapan002 www.slideshare.netそこで調べたことを備忘録の意味合いも兼ねて残しておきたいと思います。 はじめに Riderを導入…

Clean Architecture第7章「単一責任の原則(SRP)」の個人まとめ

はじめに 現在Clean Architectureという本を読んでいるのですが、備忘録の意味合いも兼ねてまとめてみたいと思います。今回は単一責任の原則(SRP)についてみていきます。 はじめに 単一責任の原則とは? 感想 単一責任の原則とは? 単一責任の原則(SRP)…

Clean Architecture第5章「オブジェクト指向プログラミング」の個人まとめ

はじめに 現在Clean Architectureという本を読んでいるのですが、備忘録の意味合いも兼ねてまとめてみたいと思います。今回はオブジェクト指向プログラミングについてみていきます。 はじめに オブジェクト指向とは? 依存関係逆転 個人的な感想 オブジェク…

【Unity】MaterialにNormalMapを設定することで見た目をクオリティーアップさせる

はじめに 今回はNormalMapについて取り上げたいと思います。 左: NormalMapあり,右: NormalMapなしNormalMapを使うことでモデルの表面の法線を設定することができ、光の反射の仕方などに影響を及ぼすことができます。また実際にメッシュに凹凸をつけたりす…

【Unity】PlayerLoopを使って毎フレーム実行される関数を追加する

はじめに 今回はPlayerLoopについて紹介し、実際に独自の処理を追加してみたいと思います。 はじめに PlayerLoopとは PlayerLoopSystem PlayerLoopの中身自体を書き換える 独自の処理を追加する さいごに PlayerLoopとは PlayerLoopについて公式ドキュメント…

【C#】複数のCancellationTokenを合成したCancellationTokenSourceを生成する

C#

はじめに 今回は複数のCancellationTokenが存在したとき、いずれか一つでもキャンセルされればキャンセル状態になるCancellationTokenSourceを生成したいと思います。docs.microsoft.com はじめに やり方 やり方 実現するためにはCancellationTokenSource.Cr…

【UniRx】AsyncSubject<T>を使ってOnCompletedされたときに最後に入力された値を出力する

はじめに 今回はAsyncSubject<T>について実際のコードも触れながら解剖していきたいと思います。github.com はじめに 使い方 仕組み さいごに 使い方 AsyncSubjectはOnCompletedされたときに最後にOnNextされた値を出力します。 [Test] public void AsyncSubjec</t>…

【UniRx】IEnumerable<T>.ToObservable<T>を使って値を順番に発行するObservableに変換する

はじめに 今回はIEnumerable<T>.ToObservable<T>について取り上げたいと思います。github.com はじめに 使い方 仕組みについて さいごに 使い方 IEnumerableを実装しているオブジェクト,いわゆるデータの集まりを指すコレクションに対してToObservableメソッドを</t></t>…

一般大学生の自作ゲームがGoogle Play Indie Games Festival 2021 トップ 20選んでいただけたので色々書き殴る

はじめに この度、私が作った「クローズドサークルからの脱出」というゲームをGoogle Play Indie Games Festival 2021のトップ20に選出していただきました。 Indie Games Festival 2021のトップ20【#IndieGamesFestival 2021】Google Play l Indie Games Fes…

【UniRx,UniTask】IObservable.ToUniTaskメソッドをうまく使いこなそう

はじめに 今回はIObservable.ToUniTaskメソッドについて紹介をしたいと思います。このメソッドを使う事でIObservableを実装しているオブジェクトに対して、OnNextもしくはOnCompletedがされるまで処理を待つようなUniTaskに変換することができます。github.c…

【C#, IL】C#の中間言語ILを読めるようになりたい(SharpLabの紹介)

C# IL

はじめに 私は普段Unityを触っているのですが、Unityのライブラリとして有名なUniRx・UniTaskを作られたneueccさんはIL単位での最適化も行なっているそうです。www.youtube.comいやはや凄すぎて良く分からない世界になってきました。ただ少しでもC#をうまく…

【Unity】ProGridsの導入方法から使い方まで

はじめに 今回はProGridsという公式アセットについて紹介したいと思います。docs.unity3d.com ProGridsを用いることでシーンビューにてグリッドを使ってオブジェクトを配置させることができます。www.youtube.com はじめに 導入方法 表示されないとき ProGri…

【Unity,UniTask】TestRunnerでasync/awaitを使った非同期処理のテストはUniTask.ToCoroutineを使うと簡単

はじめに 今回はasync/awaitのテストについて取り上げたいと思います。今までTask.Runを使ってみたりでなんとか対応させていましたが、UniTask.ToCoroutineを使うことでもっとスマートに書けることを後輩に教えてもらいました。github.com一応公式のGitHubに…

【UniTask】AsAsyncUnitUniTaskを使ってUniTaskからUniTask<AsyncUnit>に変換をする

はじめに 今回はAsAsyncUnitUniTaskを紹介したいと思います。突然ですが、UniTaskを利用していて以下のような状態になっとことはないでしょうか。 // 完了済のUniTaskを生成(awaitした瞬間10が返ってくる) UniTask<int> task1 = UniTask.FromResult(10); // 1フレ</int>…

【UniTask】UniTaskCompletionSourceを使って好きなタイミングで結果を確定させるUniTaskを生成する(ついでにUniTask.Voidの紹介)

はじめに 今回はUniTaskCompletionSourceについて紹介したいと思います。github.comUniTaskCompletionSourceを使うことで好きなタイミングで結果を確定させるUniTaskを生成することができます。早速見ていきましょう。 はじめに UniTaskCompletionSource Uni…

【Unity】Aspect Ratio Fitterを使って画像のアスペクト比を一定にしながらサイズを変更する

はじめに 今回は画像のアスペクト比を一定にすることができるAspect Ratio Fitterコンポーネントについて紹介したいと思います。 Aspect Ratio Fitterの有無早速みていきましょう。 はじめに Aspect Ratio Fitter Width Controls Height Height Controls Wid…

【UniRx, UniTask】ReactivePropertyをawaitしたらどうなるか(awaitした後ReactivePropertyの値が変わるまで)

はじめに UniRxを使っていたところ、PeactivePropertyをawaitしたらどうなるか気になりました。そこで今回は実験していきたいと思います。 はじめに ReactivePropertyをawaitする Observableをawaitする さいごに ReactivePropertyをawaitする 結論からいう…

【UniTask】SuppressCancellationThrowを使ってキャンセルを返り値として取り出す

はじめに 今回はSuppressCancellationThrowについて触れていきたいと思います。SuppressCancellationThrowの使い場面は簡単に言うと、タスクがキャンセルされたかどうかを返り値として取り出す場合です。 // 通常 try { await NormalTask(ctx.Token); } catc…

【C#,Unity】DIコンテナを使う前にPoor man’s dependency injectionを検討してみてはどうでしょうか

はじめに UnityでDI ContainerといったらZenjectやExtenject,VContainerあたりが有名ですよね。Dependency Injectionパターンを利用する場合は誰がインスタンスを生成・注入するかが難しい問題になりますが、その解決法の一つとしてDI Containerが利用され…

ひろゆき「なんですか? 『写像』って…」→「それって写像じゃないですよね?」

はじめに 今日はいつもと違って数学の話をしたいと思います。大学院で離散数学の授業を受けているのですが、ちょうど写像の話題になりました。写像といえばひろゆきさんがこちらのシーンが有名ですよね。 勝間「違うんですよ! リアルの話に対してのインター…

【Unity】ShaderGraphでCustomFunctionNodeを用いてガウシアンフィルタを作成する

はじめに 今回はShaderGraphのCustomFunctionNodeを使ってみようという記事になります。docs.unity3d.comCustomFunctionNodeは一言で言えば、自分で動作を記述することができるノードということでしょうか。細かい説明はそれぞれの箇所でしますが、今回目的…

【Unity】ShaderGraphでDissolveシェーダーを作って優勝するわね

はじめに 先日このようなものを作ってみました。キャラクターにDissolveシェーダーを適応してみました作るのが簡単な割に良い感じに見えるからコスパが良し pic.twitter.com/2NKiMN8l3f— はなちる@ゲーム制作 (@hanaaaaaachiru) June 2, 2021 Dissolveシェー…

【Excel】エクセルでうまぴょい伝説(動画)を再生させたみた

はじめに 先日このようなものを作ってみました。エクセルで「うまぴょい伝説」を再生(描画)してみました作って分かったことはVBAがかなり使いづらいこととセルの書式の変更の処理が重いことと、ライスシャワーは解像度が低くても可愛いこと pic.twitter.com/…

【UniRx】ファクトリメソッドObservable.Create<T>を解剖してみよう

はじめに 今回はUniRXのObservable.Create<T>についてソースコードを交えながら見ていきたいと思います。github.com はじめに 使い方 Observable.Createの中身 CreateObservable<T>の中身 OperatorObservableBase さいごに 使い方 var observable = Observable.Cre</t></t>…

【Unity】すごい早いという噂のDIコンテナ「VContainer」を始めて触ってみる

はじめに 今回は巷で噂のVContainerについての記事を書きたいと思います。github.comUnityのDIコンテナといえばZenjectであったり、Extenjectが有名でしたがそれらと比較して性能が全体的に良いようです。GitHubを見ればこれでもかというほどZenjectとのパフ…

【Unity】同じコンポーネントをアタッチさせないようにするDisallowMultipleComponent属性について

はじめに 今回は同じコンポーネントをアタッチさせないようにする[DisallowMultipleComponent]について書いていきたいと思います。 はじめに DisallowMultipleComponentとは 使い方 DisallowMultipleComponentとは まずは公式ドキュメントを見てみましょう。…

【Unity】TextMeshProの容量を指定した文字だけ入れて減らす手順

はじめに 昔これに似た記事を書いたのですが、今回はさらに簡単にできる手順があったので再度記事にしたいと思います。 (前記事では比較実験もしていますが、今回は手順をつらつらと書いていきます)www.hanachiru-blog.comまず前提としてTextMeshProはFont…

【Unity】No 'git' executable was found. Please install Git on your system then restart Unity and Unity Hubというエラーの対処法(Windows)

はじめに Unityのプロジェクトを開こうとしたところ以下のエラーが出てきちゃいました。 An error occurred while resolving packages: Project has invalid dependencies: com.neuecc.unirx: No 'git' executable was found. Please install Git on your sy…

【C#】C#でAWS Lambda & API Gatewayを使ってWebAPIを作る(Windows)

はじめに 最近知ったのですが,AWS LambdaがC#に対応しているらしいです。C#大好きっ子としては触らなきゃということで簡単なWebAPIを作ってみました。 AWS Lambda はサーバーレスコンピューティングサービスで、サーバーのプロビジョニングや管理、ワークロ…