みかづきメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

C#

Unity 2018.x で自動的に UPM パッケージをインストールしたい

BOOTH とかで商品を配布していて、共通の部分とかを配布するときに、 UPM 経由で依存を入れたいときとかの方法。 UnityPackage に含めると他のと被った場合、古いものをインポートされると困る!的な場合、 (個人的には) UPM 経由でインストールさせるのがよ…

Unity のカスタムシェーダー GUI で、Tiling & Offset を良い感じに表示したい

最近は Toon Shader の勉強をしている私です。 Unity のシェーダーでは C# コードで GUI を自分で組めるのですが、 Tiling と Offset に対応していると、邪魔だと感じるときがあるので、良い感じに表示するための方法。

Canvas Image を Mesh に変換したい

なんでそんな必要があるのかって? Canvas 使いまくったものが送ってこられて Vket 入稿できなかったからです。 そういう需要があるにはあるので、放流します。

UdonSharp コンポーネントをエディターから動的生成したい

Prefab からのセットアップ自動化みたいな想定で、 UdonBehaviour (U#) の中身をいじりたい。 そんなときのいじりかた。

UdonSharp の特定のクラスのみを受け入れる入力フィールドを作りたい

そんなことをする必要があるかどうかはさておき、やりたくなったので。

Unity だけでメッシュを作ってアセットとして保存したい

危うく今月の学びがなくなるところでした。 ということで、 Blender などを使わずに任意のメッシュを作成して保存する方法。 やり方は簡単で、以下のコードで 1 tris なメッシュが作成・保存されます。 // see: https://www.wikiwand.com/ja/%E6%AD%A3%E4%B8…

Unity で File (Local) ID を元に Object を検索したい

まあ普通にやっていてそんなケースは無いと思うのですが、以下の場合。 Unity のシーンファイルを解析中 YAML のタグ情報は使えない みたいな場合、 GetComponentsInChildren<T> からがんばって探すことになります。 そういったときのやり方。</t>

Unity で Animator Controller を動的生成したい

前回、 Animation を動的に生成しましたが、 Controller の方はテンプレートでした。 今回はそこも C# Script から生成してみました。 ちなみに動機は同じですが仕様上不可能だと分かったので供養としておいておきます。

Unity Editor のカスタムエディター上で配列を良い感じに扱いたい

配列を出すためのメソッドが標準で用意されていなかったので、メモしておきます。 例えばこういう配列があったとして。 [SerializeField] private VRCAvatarDescriptor[] _avatars; これをカスタムエディター上で良い感じに表示して欲しいとき、 下のように …

Unity で Animation を動的生成したい

元は VRChat 関連だけど、アバターの GameObject のツリー構造に依存せず、 自由にギミックを仕込む為の仕組みを作りたかった。 ただ、そのまま anim を配布しただけだと対応できないので、動的に生成してみました。

Unity のエディター拡張を DLL 形式で配布したい

Unity のエディター拡張とかでソースを公開したくない場合とか、 追加参照が必要なときに DLL で配布すると良い感じに出来たりします。 そういうときのための、 DLL でエディター拡張を作る方法についてのメモ。 前提環境は以下の通り: Windows 10 Microsof…

.NET 公式で定義されている P/Invoke シグネチャーを使って Win32 API を使いたい

暇だったので .NET Foundation (github.com/dotnet) のリポジトリ一覧を眺めていると、 Windows の P/Invoke の定義をしているリポジトリがあったので、 それを使って Win32 API を呼び出してみます。

C# で Glob Pattern でファイルを検索したい

C#

Glob Pattern でファイル検索したいですよね、私はしたいです。 ということで、 C# で使ってみるためのメモです。

Unity でプロジェクト外部の参照を追加したい

ここでいう外部の参照っていうのは、 NuGet ライブラリだったり、 .NET Framework には含まれてるけど追加参照が必要なものを指します。 NuGet ライブラリを使う場合 公式ドキュメントでは nuget.org から DL する方法が紹介されていましたが、 いちいち落と…

Unity で Texture2DArray を作成したい

使っているシェーダーの都合上、 Texture2DArray を使う必要が出てきたのだけど、 どうやら Texture2DArray は直接作れないようなので、作り方のメモ。

Unity で Project から Hierarchy へスクリプトを使って Prefab を展開したい

Prefab の設定を楽にしたくて、エディター拡張を作ったのですが、 もはや Prefab を Hierarchy に移すのさえ面倒だったのでやり方を調べました。

Unity のエディター拡張で D&D を受け入れたい

VRChat でいろいろやっている影響もあって Unity を最近よくいじっているのですが、 大量のオブジェクトの操作をやりたくなったので、エディター拡張を作りました。 ただ、私の知る限り一括で Object を設定できるコントロールは無かった気がしたので、 ドラ…

SteamVR でレーザーポインターを実装する

VR ゲームで操作するとき、レーザーポインター形式の操作方法をよく見かけます。 それを Unity + SteamVR で実装してみます。

SteamVR + Index Controller で Animation を使いながら Finger Tracking をしたい

先日の記事で指トラッキングをしましたが、 Animation Controller と使うと、 Animation で上書きされてしまってうまく動作しないらしいので、 改めて、 Animation Controller に対応した指トラッキングをやってみました。

SteamVR + Unity で、アバターのサイズを人間の大きさに合わせたい

前回までの記事で、せっかく自分の動きでアバターを動かせるようにしたけど、 大きさがあっていないので、若干の違和感が発生してしまっていました。 ということで、この記事では自己流でサイズを合わせてみました。

SteamVR + Index Controller で Finger Tracking をしたい

ということで、久々ですが SteamVR の記事です。 せっかく Index Controller があるので、指の動きを良い感じにしてみようと思います。

Unity 拡張で、 Component から Inspector に表示されている名前をとりたい

大体のことは GitHub にある UnityCsReference を読めば、 どの API 使えば良いか解決するなと気がつき始めました、みかです。 Unity で GameObject とかに Component をくっつけると表示されるこの名前 これ 最初はクラス名から自力で生成するのかと思って…

UWP API の GraphicsCapture で Window Handle をソースとして使いたい

久々の C# ネタ、かつ UWP ネタということで、今年春のアップデートでできるようになった事についてご紹介。 UWP でスクリーンショットや動画の撮影などに使える GraphicsCapture API で、 Win32 API でおなじみの hWnd をソースとして使えるようになってい…

Windows で壁紙が変更されたことを知りたい

C#

壁紙が変更されたことを検知して、何かしたい!って場面に遭遇したので簡単に残しておきます。 Microsoft.Win32.SystemEvents.UserPreferenceChanged は DPI の調整などでも発動するので、 それ以外の方法で知る必要があります。 そこで、 ManagementEventWa…

Pixela と Azure Functions で日々の SNS への投稿数を記録したい

2018年11月中旬頃から、 Misskey への日々の投稿数を Pixela に記録しているので、 私はこうやりました!という記事です。 普段はあまりしない自作の成果物の宣伝もあるけど許してネ。

EnumWindows で見えない UWP アプリを除外したい

突然の Win32 ネタです。 トップレベルウィンドウを列挙する場合、 EnumWindows を使うのですが、 そのとき、見えないウィンドウなども混ざってしまいます。 そういうのを除外する方法です。

Internal compiler error: 型 'Microsoft.Cci.DummyModuleReference' のオブジェクトを型 'Microsoft.Cci.IAssemblyReference' にキャストできません。

タイトルママのエラーが Release ビルド時に出た。 ソリューションを閉じる NuGet キャッシュを全て消す (VS から消すと、消せませんでしたと出ることがあるが、それで OK) プロジェクトの .vs ディレクトリを消す bin や obj などのビルド時に生成されたデ…

UWP アプリから、ストアアプリのレビュー画面を開きたい

アプリの設定とかから、「気に入ったらレビューしてね!」みたいなのを追加したかった。 以下のようにすることで起動できます。 await Launcher.LaunchUriAsync(new Uri($"ms-windows-store:REVIEW?PFN={Package.Current.Id.FamilyName}")); ちなみに、 MSDN…

Wallpaper Engine の仕組みが気になったので

先日、 Twitter してたら面白そうなアプリのツイートが流れてきました。 Steamで販売している”WallpaperEngine”というデスクトップの画像を動画に変更できるアプリが面白い。設定も凄く簡単だし、最大化しているタブがある時は動画を停止してくれるのでCPUに…

PC の型番を取得したい

C#

PC の型番情報を取得したくなったので、取得してみました。 こういった情報は、 Windows Management Instrumentation を使えば取得できるようです。 ということで、早速取得してみます。 using (var mos = new ManagementObjectSearcher()) { mos.Query.Quer…