C#
Prefab からのセットアップ自動化みたいな想定で、 UdonBehaviour (U#) の中身をいじりたい。 そんなときのいじりかた。 といっても、基本は Unity で Component 変更するのと変わらない。 private static void AttachUSharpComponent(GameObject gameObject…
そんなことをする必要があるかどうかはさておき、やりたくなったので。 ということでいつもの前提環境 Unity 2018.4.20f1 UdonSharp 0.18.6 といっても、実装は簡単で、こんな感じ。 もしかしたらこんなことしなくても良いカモだけど。 [SerializeField] [Ud…
危うく今月の学びがなくなるところでした。 ということで、 Blender などを使わずに任意のメッシュを作成して保存する方法。 やり方は簡単で、以下のコードで 1 tris なメッシュが作成・保存されます。 // see: https://www.wikiwand.com/ja/%E6%AD%A3%E4%B8…
まあ普通にやっていてそんなケースは無いと思うのですが、以下の場合。 Unity のシーンファイルを解析中 YAML のタグ情報は使えない みたいな場合、 GetComponentsInChildren<T> からがんばって探すことになります。 そういったときのやり方。 まずは、以下のプ</t>…
前回、 Animation を動的に生成しましたが、 Controller の方はテンプレートでした。 今回はそこも C# Script から生成してみました。 ちなみに動機は同じですが仕様上不可能だと分かったので供養としておいておきます。 Animator Controller の生成自体も、…
配列を出すためのメソッドが標準で用意されていなかったので、メモしておきます。 例えばこういう配列があったとして。 [SerializeField] private VRCAvatarDescriptor[] _avatars; これをカスタムエディター上で良い感じに表示して欲しいとき、 下のように …
元は VRChat 関連だけど、アバターの GameObject のツリー構造に依存せず、 自由にギミックを仕込む為の仕組みを作りたかった。 ただ、そのまま anim を配布しただけだと対応できないので、動的に生成してみました。 Animation を動的に生成するには、以下の…
Unity のエディター拡張とかでソースを公開したくない場合とか、 追加参照が必要なときに DLL で配布すると良い感じに出来たりします。 そういうときのための、 DLL でエディター拡張を作る方法についてのメモ。 前提環境は以下の通り: Windows 10 Microsof…
暇だったので .NET Foundation (github.com/dotnet) のリポジトリ一覧を眺めていると、 Windows の P/Invoke の定義をしているリポジトリがあったので、 それを使って Win32 API を呼び出してみます。 前提環境は以下の通り Windows 10 Microsoft Visual Stu…
Glob Pattern でファイル検索したいですよね、私はしたいです。 ということで、 C# で使ってみるためのメモです。 探してみると、 Microsoft 公式のライブラリがあったのでそれを使います。 Microsoft.Extensions.FileSystemGlobbing NuGet で上記パッケージ…
ここでいう外部の参照っていうのは、 NuGet ライブラリだったり、 .NET Framework には含まれてるけど追加参照が必要なものを指します。 NuGet ライブラリを使う場合 公式ドキュメントでは nuget.org から DL する方法が紹介されていましたが、 いちいち落と…
使っているシェーダーの都合上、 Texture2DArray を使う必要が出てきたのだけど、 どうやら Texture2DArray は直接作れないようなので、作り方のメモ。 ドキュメントによると、 Texture2DArray はコードから作成する必要がある様子。 なので、エディター拡張…
Prefab の設定を楽にしたくて、エディター拡張を作ったのですが、 もはや Prefab を Hierarchy に移すのさえ面倒だったのでやり方を調べました。 前提環境は以下の通りです : Unity 2018.4.20f1 Personal 動作としては、以下のような流れになります。 Prefab…
VRChat でいろいろやっている影響もあって Unity を最近よくいじっているのですが、 大量のオブジェクトの操作をやりたくなったので、エディター拡張を作りました。 ただ、私の知る限り一括で Object を設定できるコントロールは無かった気がしたので、 ドラ…
VR ゲームで操作するとき、レーザーポインター形式の操作方法をよく見かけます。 それを Unity + SteamVR で実装してみます。 実行環境は以下の通りです: Windows 10 Unity 2019.2.17f1 Personal Valve Index この記事では以下のアセットを使用します: Ste…
先日の記事で指ト[ラッキングをしましたが、 Animation Controller と使うと、 Animation で上書きされてしまってうまく動作しないらしいので、 改めて、 Animation Controller に対応した指トラッキングをやってみました。 前提環境は以下の環境です。 Unit…
前回までの記事で、せっかく自分の動きでアバターを動かせるようにしたけど、 大きさがあっていないので、若干の違和感が発生してしまっていました。 ということで、この記事では自己流でサイズを合わせてみました。 いつもの通り、前提環境は以下の通りです…
ということで、久々ですが SteamVR の記事です。 せっかく Index Controller があるので、指の動きを良い感じにしてみようと思います。 前提環境 Unity Personal 2019.2.16f1 Windows 10 Index Controller SteamVR 関連が設定済みのシーン 使用するアセット…
大体のことは GitHub にある UnityCsReference を読めば、 どの API 使えば良いか解決するなと気がつき始めました、みかです。 Unity で GameObject とかに Component をくっつけると表示されるこの名前 これ 最初はクラス名から自力で生成するのかと思って…
久々の C# ネタ、かつ UWP ネタということで、今年春のアップデートでできるようになった事についてご紹介。 UWP でスクリーンショットや動画の撮影などに使える GraphicsCapture API で、 Win32 API でおなじみの hWnd をソースとして使えるようになってい…
壁紙が変更されたことを検知して、何かしたい!って場面に遭遇したので簡単に残しておきます。 Microsoft.Win32.SystemEvents.UserPreferenceChanged は DPI の調整などでも発動するので、 それ以外の方法で知る必要があります。 そこで、 ManagementEventWa…
2018 年 11 月中旬頃から、 Misskey への日々の投稿数を Pixela に記録しているので、 私はこうやりました!という記事です。 普段はあまりしない自作の成果物の宣伝もあるけど許してネ。 Pixela は簡単に言うと草を commit 以外でもはやせるサービスです。 …
突然の Win32 ネタです。 トップレベルウィンドウを列挙する場合、 EnumWindows を使うのですが、 そのとき、見えないウィンドウなども混ざってしまいます。 そういうのを除外する方法です。 コードはこんな感じ。 NativeMethods.EnumWindows((hWnd, lParam)…
タイトルママのエラーが Release ビルド時に出た。 ソリューションを閉じる NuGet キャッシュを全て消す (VS から消すと、消せませんでしたと出ることがあるが、それで OK) プロジェクトの .vs ディレクトリを消す bin や obj などのビルド時に生成されたデ…
アプリの設定とかから、「気に入ったらレビューしてね!」みたいなのを追加したかった。 以下のようにすることで起動できます。 await Launcher.LaunchUriAsync(new Uri($"ms-windows-store:REVIEW?PFN={Package.Current.Id.FamilyName}")); ちなみに、 MSDN…
先日、 Twitter してたら面白そうなアプリのツイートが流れてきました。 Steam で販売している”WallpaperEngine”というデスクトップの画像を動画に変更できるアプリが面白い。 設定も凄く簡単だし、最大化しているタブがある時は動画を停止してくれるので CP…
PC の型番情報を取得したくなったので、取得してみました。 こういった情報は、 Windows Management Instrumentation を使えば取得できるようです。 ということで、早速取得してみます。 using System.Management.dll への参照設定が必要です。 今回は型番だ…
Entity Framework Core を使ったアプリを UWP で作ったので、 ライブラリとツールの使い方をメモしておきます。 基本、ドキュメントの Getting Started 通りにすればいけます。 はじめに、 NuGet から以下のパッケージをインストールします。 Microsoft.Enti…
リレーションが下のような感じの場合。 public class Anime { public int AnimeId { get; set; } public int Year { get; set; } public int Quarter { get; set; } public string Title { get; set; } public virtual ICollection<Episode> Episodes { get; set; } }</episode>…
LINQ to Entities + SQLite で下のようなクエリを使うと、 // 今やるべき予定 var plans = context.Plans.Where(w => w.StartAt <= DateTime.Now && DateTime.Now <= w.EndAt); こんな SQL が発行されます。 SELECT [Project1].[C1] AS [C1], [Project1].[Pl…