Unity
ある数字を+1ずつ足していき、〇〇以上になった場合に0に戻す。 こういったロジックを実装するときにmod2を使うと簡単に書くことができます。 普通に計算する 「ある数字を+1ずつ足していき、〇〇以上になった場合に0に戻す。」をwhile文を使って実装した…
LinqでToArrayやToListを使うときの注意点なのです。 使い方によっては負荷が上がってしまうので用途により使い分けたほうがよいです。 パフォーマンス比較 次のコードを書いてUnityのProfilerで調べてみます。 Profiler.BeginSample("None"); var sample1 =…
とあるプルリクエストを見ていたときに、今までみたことのない書き方があり調べてみるとことにしました。 switch式 調べたとこと「switch式」という演算子でした。 docs.microsoft.com 具体例 まず、2つのタイプを用意します。 public enum TestType { None,…
ある文字とある文字を組み合わせて文字列を作る際に今までは次のようなコードを書いていました。 var value = 10; var maxValue = 100; var text = string.Format("{0}/{1}", value, maxValue); Debug.Log(text); // 10/100 上記コードは、Riderを使っている…
UnityのVideoPlayerを何気なく使ったところ、エディタ上では動画が再生されるが、実機にビルドすると再生されない問題が出たときの対処方法です。 Codecを変更する おそらく動画ファイルの設定が問題なのですが、何も考えずに動画をProjectへ入れると、Codec…
とあるListを作成したいときに通常なら次のようなコードを書くとします。 var lists = new List<int>(); for (int i = 0; i < 5; i++) { lists.Add(i); } 実はこのような記述はLinqを使うと次のように置き換えることができます。 var lists = Enumerable.Range(0,</int>…
LayoutGroupについて LayoutGroupのコンポーネント配下のGameObjectを自動的に配置します。 位置の調整や要素の大きさなど、LayoutGroupの設定項目に合わせてレイアウトします。 種類 LayoutGroupは次の3つ種類が用意されています。 Horizontal Layout Group…
UnityでUIを作っていくときに便利なコンポーネントがあります。 ContentSizeFitterと呼ばれる自動でUIのレイアウトを行ってくれます。 複雑なUIを組みたいときに、このContentSizeFitterを使えば専用のスクリプトを書くことなく実装ができる場合があります。…
本日、東京ビックサイトで行われたコミックマーケット97・南-42b「albatrus」にお越しいただきありがとうございました。 天候もよく上着を来ているのも暑いくらいの会場でしたのでとてもすごしやすかったです。
Twitterでは告知をさせていただいていたのですが、12/31の「コミックマーケット97」にサークル参加を予定しています。 大晦日ですが、新刊を作ることができたので興味のある方はぜひサークルスペースへお越しください。
先日のコミックマーケット96で配布をした同人誌が少し手元に余ったので、Boothを使って販売をしてみることにしました。 以前からBoothのサービス自体は知っていて、電子書籍をを買ったことがありました。 実際に販売するための手続きをいろいろ行ったのです…
本日、東京ビックサイトで行われたコミックマーケット96・南-43a「albatrus」にお越しいただきありがとうございました。 今回のコミケでは今までよりと思うところが多かったので反省も含めてブログにまとめていきたいと思います。
Twitterでは告知をさせていただいていたのですが、8/12の「コミックマーケット96」にサークル参加を予定しています。 今年の夏は4日間開催となりその最終日です。 台風が近づいて来ているので、天候が心配ですが興味をいただければぜひサークルスペースへお…
個人的にあまり詳しくない「例外処理」について調べてみました。 「try{} catch{}」を使うのが例外処理なのだな、というぼやけた認識でいるのですが、具体的にどういった場面で利用するのかなど実践で使えるのか、処理は重くないのかなど考えてみました。
Unityだけではないと思うのですが、コードを書いているときに同じような処理を書く必要が出てくる場合があります。 何も考えずに、コードをコピーすればこの問題は解決するのですが、将来的には負債を残すことになります。共通化し同じコードを使い回すよう…
Unityでコルーチンを使って処理の流れを制御する時の待機方法を調べてみました。 通常はWaitForSecondsを使っている感じなのですが、その他色々な方法があります。簡単ですがブログにまとめていきたいと思います。
個人的に一度調べてみたかった属性についてブログに書いていきたいと思います。いろいろな制約や拡張ができるので、上手く組み合わせて使えば作業速度や効率が良くなると思います。
c#のLinqを使う時に、最初の要素を取得したいときに「FirstOrDefault」をよく使っています。 要素がない場合には既定値(int型なら0、string型なら空)を返してくれます。 非常に便利なのですが、引数を使えばコードがより短くなる場合があります。
UnityにはMonoBehaviourの他に「UIBehaviour」というクラスが用意されています。 私も最近までこの存在を知らなかったのですが、結構いろいろなところで利用をされているのを見かけたので少し調べて見ることにしました。
この度やりたいことは、Inspector上で何かしらの値を変更した時に、GameObjectがそれに伴い反応をさせることです。 色を変更すれば、すぐに色が変わる。デフォルトで用意されているUIパーツでは実現ができているのですが、これを独自に実装をします。
Unityで表示・非表示を実装する時にまず思い浮かべるのが「GameObject.SetActive()」です。 UI周りでも比較的頻度が高い処理だと思います。 私も実際のゲームで何の疑問もなく使っていたのですが、これがメモリーを圧迫する(処理落ち)の原因になるという話…
c#の構造体(struct)は結構前からどういった存在なのか気になっていました。 クラスとの違いはどの部分なのか、どのようなメリットがあるのか、など知っておけば、パフォーマンスを加味したコードを書けるのではないか。 これまで個人的に全く使って来ていな…
他の人のコードを読むときに思わない出会いがよくあります。 今回調べてみようと思った「IEquatable」もその中の一つです。 c#が用意しているインターフェースということはわかるのですが、どのような時に使ったら良いのかを簡単ですが調べてみることにしま…
Unityでスクリプトを作成する際にデフォルト「MonoBehaviour」を継承したクラスになります。 普段余り考えて使っていなかったのですが、このMonoBehaviourが一体どういったクラスなのかに興味をもち少し調べてみました。 簡単ですがブログに記事にまとめてい…
UniRxを使っていてタイマーみたいなものを実装したときに必要なくなった場合にどう止めるのかを調べたことをメモとしてブログに書いていきたいと思います。 すでに先人が丁寧にWebで公開していましたので、それをそのまま参考にしました。
Unityでデバックをするときに「SRDebugger」というAssetを使うと色々なことが捗ります。 エディタ拡張をして独自にデバック機能を作る方法もあるのですが、この「SRDebugger」を拡張したほうが手間も工数も短縮して利用ができます。
少し前に身内内での勉強会で取り上げられていたのが「UniTask」です。 現状コルーチンを行っている非同期の処理を c#のasync/awaitを使って良い感じでUnityで使えるとのことで、今後新規でゲームを作成するときに利用する機会が多くなるかもしれません。
本日、東京ビックサイトで行われたコミックマーケット95・東ト-10b「albatrus」にお越しいただきありがとうございました。 配布をした「Unityエフェクト本」は、たくさんの方に手にとっていただき無事完売となりました。
年末という忙しい時期ではありますが、コミケに参加される機会があれば是非お越しください。
先日、東京ビックサイトで行われたコミックマーケット93・東3キ-11b「albatrus」にお越しいただきありがとうございました。 配布をした「Unityのおしごと本2」は、たくさんの方に手にとっていただき無事完売となりました。会場内もとても蒸し暑く大変でした…