koturnの日記

普通の人です.ブログ上のコードはコピペ自由です.

C#

List<T>の内部の配列の参照を取得する

C#

はじめに C# の List<T> はいわゆる可変長配列のことであり,内部的には配列を持っている. 要素追加の度に残り容量を確認し,不足するようであればより大きな配列を確保し,そこに既存の要素をコピーした上で新しい要素を入れるという実装になっている. List<T> </t></t>…

lilToonのカスタムシェーダーを作るときのTips

基本 基本的なカスタムシェーダーの情報は下記公式ドキュメントを参照すること. lilToon カスタムシェーダーの作り方 ドキュメント中にある下記のファイルがテンプレートであり,この中の数ファイルを編集する. カスタムシェーダーテンプレート(zip) ジ…

PNGファイル再圧縮ツールを改良した

TL;DR 2020-12-07にも記事を書いたツールだが,当時より機能追加を行ったため,再度記事を書くことにした. 大きくは下記4点が追加となった. VRMファイルを処理可能になった 元のPNGファイルの画像フォーマットをそのままにしておくオプションの追加 IDATの…

clusterの写真リネームツールを作った

TL;DR clusterで撮影した画像ファイルの一括ダウンロードで得られるzipファイル内のPNGファイル名を cluster_yyyy-MM-dd_HH-mm-ss_XXX.png という形式にリネームするツールを作った(yyyyMMddHHmmss は撮影日時の年月日時分秒,撮影日時=ファイル作成日時=…

ZopfliPNGによるPNGの可逆再圧縮とVRMの容量削減について

この記事はIQ1 Advent Calendar 2020の7日目の記事です. TL;DR zopflipng.dllをいい感じに使うツールを作りました. 並列実行可能 zipアーカイブファイル内のファイルを一時的に書き出すことなく処理可能 更新日時タイムスタンプはそのままで再縮率実施 ま…

Unityでの変数・プロパティのアクセス性について考える

前置き 最近,Unityに触れており,C#を書くことが多い. 古いUnityの文化はわからないが,publicメンバ変数が気持ち悪くて仕方がない. (おそらく,古代のUnityではプロパティを使用できない,あるいは実行処理系がプロパティのインライン展開を行うことが…

C#のシングルトン

C#

背景 最近,UnityでC#を書くので,普通のC#を書くときに使っていたコードスニペットを整理していた. その中にシングルトンの実装が含まれているのを見て,そういえばこの実装はスレッドセーフなのか?と疑問に思ったのがきっかけで,C#のシングルトンについ…