みかづきメモ

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

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

危うく今月の学びがなくなるところでした。
ということで、 Blender などを使わずに任意のメッシュを作成して保存する方法。

やり方は簡単で、以下のコードで 1 tris なメッシュが作成・保存されます。

// see: https://www.wikiwand.com/ja/%E6%AD%A3%E4%B8%89%E8%A7%92%E5%BD%A2
var l = 1.0f;
var a = new Vector3((float) (l / Math.Sqrt(3)), 0);
var b = new Vector3((float) (-l / (2 * Math.Sqrt(3))), l / 2);
var c = new Vector3((float) (-l / (2 * Math.Sqrt(3))), -l / 2);
var mesh = new Mesh
{
    vertices = new[] { a, b, c },
    triangles = new[] { 0, 1, 2 }
};
mesh.RecalculateNormals();

AssetDatabase.CreateAsset(mesh, "Assets/Mochizuki/Voxel/Meshes/Triangle.asset");

とても簡単。 今回はあくまで生成するだけなので、 MeshFilter などを設定する必要もなく、
保存した Triangle.asset をそのまま Particle System などに設定できる。

ということでメモでした。

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

まあ普通にやっていてそんなケースは無いと思うのですが、以下の場合。

  • Unity のシーンファイルを解析中
  • YAML のタグ情報は使えない

みたいな場合、 GetComponentsInChildren<T> からがんばって探すことになります。
そういったときのやり方。

続きを読む

Docsify CLI を使って快適にドキュメントを書きたい

Markdown to Documentation Tool として Docute を使っていたけれど、
知らないうちにアクティブにはメンテナンスされなくなっていたので、
Docsify に乗り換えました。

今回はそのお話です。

続きを読む

JavaScript で型定義ファイルを Global に宣言したい

TypeScript 使うまでもない単体の JS ファイルでも d.ts を使いたい時ってあるじゃないですか。
そういうときのあれ。

例えば、 windowDocute というオブジェクトを生やしたこんな型定義があって。

// @types/globals.d.ts
// 面倒なので一部だけ
type DocuteOptions = {
  target?: string;
  title?: string;
};

interface Docute {
  new (options?: DocuteOptions): this;
}

export declare global {
  interface Window {
    Docute: Docute;
  }
}

もう何もかも面倒で tsconfig.json すら作りたくないけど型チェックだけ使いたいとき、
下のようにすれば一応動く

// public/docute.js

// @ts-check
/// <reference path = "../@types/globals.d.ts" />

new Docute(...); // 型チェックも動く

ということで、怠惰なメモでした。

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

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

続きを読む