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

【2021年】多摩動物園へ行ってきました

数年前から「12月に動物園へ行く」という謎のルーティンを自分に架しているのですが、去年はコロナの影響で行くことができず、2年ぶりに動物園へ行ってきました。 ライオン 多摩動物園は4年ぶりで、その時に工事をしていたライオン周りのエリアが完成してい…

【Unity】TextMeshProに数字を設定する

メモ書きになります 数字を文字列変換 TextMeshProに表示するテキストは文字列でなければならないので、次のような記述をしていました。 text = x.ToString(); こちらの方法で変換はできるのですが、文字列に変換する家庭でメモリのアロケーションが起きるよ…

【Unity】ジェネリック型のCustomEditor

エディタ拡張を行っている時にあるジェネリクス型のクラスのInspectorを変更したい時がありその時の知見です。 対象のクラス 例えばベースクラスとして次のようなクラスを定義しました。 public class HogeBase<T> : MonoBehaviour { [SerializeField] private </t>…

【Unity】TimelineのTrackの見た目を変える

TimelineのTrackの見た目を変える場合にはTrackEditorクラスを使います。 [CustomTimelineEditor(typeof(HogeTrack))] public class HogeTrackEditor : TrackEditor { } CustomTimelineEditor Attributeに指定したTrackが拡張されます。 TrackDrawOptions Tr…

【Unity】TimelineのClipの見た目拡張

Timelineで利用するClipの拡張をする場合、ClipEditorクラスを継承をして実装を行います。 [CustomTimelineEditor(typeof(HogeClip))] public class HogeClipEditor : ClipEditor { } CustomTimelineEditor Attributeは拡張対象になるClipのクラスをしていし…

【Unity】TimelineのTrackAsset周りを調べてみる

TimelineのTrackを自作するときにTrackAssetクラスを使います。 このクラスでは何ができるのかを調べてみました。 TimelineのTrack TrackAsset 自作のTrackを作る場合にはTrackAssetクラスを継承します。 public class TestTrack : TrackAsset { } Clip指定…

【Unity】ExecuteAlwaysについて

Unityで使うc#のクラスでは色々なAttributeを定義することができます。 その中で「ExecuteAlways」というAttributeがあります。 docs.unity3d.com ExecuteAlways 簡単な例は次のようになります。 [ExecuteAlways] public class ExecuteAlwaysTest : MonoBeha…

【Unity】自作のPlayableを作成しTimelineで再生できるようにする

Playable API周りについての概要がなんとなくわかってきたので、次にScriptablePlayableを自作してみたいと思い調査をしてみました。 最終目標は独自のTrackをTimelineで再生をすることです。 ScriptPlayable を自作する ScriptPlayableを作るにはPlayableBe…

【Unity】Playable と Timelineについて

これまで触ってなかったUnityの「TimeLine」について調べる機会がありました。 その中で「Playable」についてブログに書いていきたいと思います。 Playable API 調べるとUnityには「Playable API」と呼ばれるものがあるのがわかりました。 これは、アニメー…

【C#】クラスをDeep Copyする

ローカルに保存したデータクラスを変更した場合、その参照先のデータも変更されます。 例えば、Saveボタンがあり、ボタンを押したときだけデータクラスを変更したい場合には、変更前の値をどこかに保持しなくてはいけません。 単純に次のように別の変数を用…

【Unity】クラス同士の比較を行いたいときに IEquatableを使う

とあるデータクラスを作ったときに、その中身が同じかどうかを比較をしたい場合にIEquatableを使って比較するのが良いと教わったので、実装をしてみました。 IEquatable このインターフェイスは等価かどうかを判断するEqualsが定義されています。 継承したク…

ニーアレプリカントをクリアした

少し前になるのですが、ニーアレプリカントをクリアしました。 ニーア レプリカント ver.1.22474487139... - PS4スクウェア・エニックスAmazon ニーアレプリカント 本作はPS4版でリメイクされた作品ですが、私は過去作をやっていません。 ただ続編のニーアオ…

ゼルダ無双 厄災の黙示録クリアした

先月くらいから遊んでいたゼルダ無双を最近クリアしました。 簡単ですが遊んでみた感想などを書いていきたいと思います。 ゼルダ無双 厄災の黙示録 -Switch発売日: 2020/11/20メディア: Video Game 無双シリーズ 無双シリーズは本作品以外にもたくさん出てい…

NETFLIXの本を読んだ

連休中なのですが、前から積んでいたNETFLIXの本を読みました。 こちらの本です。 NO RULES(ノー・ルールズ) 世界一「自由」な会社、NETFLIX作者:リード・ヘイスティングス,エリン・メイヤー発売日: 2020/10/22メディア: 単行本(ソフトカバー) 内容 よくあ…

【読書】赤と白、我が人生を読む

ゴールデンウィークということで普段余りやらないことをやっているのですが、今日はサッカーのアーセン・ベンゲル監督の「赤と白、我が人生」を読みました。 アーセン・ヴェンゲル自伝 赤と白、わが人生 (ヨシモトブックス)作者:アーセン・ヴェンゲル発売日:…

【Unity】 mod2演算とは

ある数字を+1ずつ足していき、〇〇以上になった場合に0に戻す。 こういったロジックを実装するときにmod2を使うと簡単に書くことができます。 普通に計算する 「ある数字を+1ずつ足していき、〇〇以上になった場合に0に戻す。」をwhile文を使って実装した…

【C#】LinqのToArrayとToListについて

LinqでToArrayやToListを使うときの注意点なのです。 使い方によっては負荷が上がってしまうので用途により使い分けたほうがよいです。 パフォーマンス比較 次のコードを書いてUnityのProfilerで調べてみます。 Profiler.BeginSample("None"); var sample1 =…

【Unity】switch式について

とあるプルリクエストを見ていたときに、今までみたことのない書き方があり調べてみるとことにしました。 switch式 調べたとこと「switch式」という演算子でした。 docs.microsoft.com 具体例 まず、2つのタイプを用意します。 public enum TestType { None,…

【Unity】ZStringを使って文字を操作する

ある文字とある文字を組み合わせて文字列を作る際に今までは次のようなコードを書いていました。 var value = 10; var maxValue = 100; var text = string.Format("{0}/{1}", value, maxValue); Debug.Log(text); // 10/100 上記コードは、Riderを使っている…

【Unity】VideoPlayerで 「video unsupported by hardware」のエラーが出た

UnityのVideoPlayerを何気なく使ったところ、エディタ上では動画が再生されるが、実機にビルドすると再生されない問題が出たときの対処方法です。 Codecを変更する おそらく動画ファイルの設定が問題なのですが、何も考えずに動画をProjectへ入れると、Codec…

Enumerable.Rangeを調べてみた

とあるListを作成したいときに通常なら次のようなコードを書くとします。 var lists = new List<int>(); for (int i = 0; i < 5; i++) { lists.Add(i); } 実はこのような記述はLinqを使うと次のように置き換えることができます。 var lists = Enumerable.Range(0,</int>…

【Unity】LayoutGroupについて

LayoutGroupについて LayoutGroupのコンポーネント配下のGameObjectを自動的に配置します。 位置の調整や要素の大きさなど、LayoutGroupの設定項目に合わせてレイアウトします。 種類 LayoutGroupは次の3つ種類が用意されています。 Horizontal Layout Group…

【Unity】ContentSizeFitterについて調べてみた

UnityでUIを作っていくときに便利なコンポーネントがあります。 ContentSizeFitterと呼ばれる自動でUIのレイアウトを行ってくれます。 複雑なUIを組みたいときに、このContentSizeFitterを使えば専用のスクリプトを書くことなく実装ができる場合があります。…

はてなブログへ引っ越しをしました

突然ですが、ブログをレンタルサーバー上のWordPressから「はてなブログ」に引っ越ししていました。 引っ越し理由 WordPressでブログを初めて10年位たつのですが、レンタルサーバー上のメンテナンスやWordPressのメンテナンスが段々と辛くなり、HTTPSの対応…