C#
前回に引き続き、ComputeShaderを使っていろいろ試行錯誤していきます。 taiga.hatenadiary.com 前回は最終的にGPUまで登場させてUnity関係なく四則演算をちょっとやっただけだったので、今回はオブジェクトを1つ回転させて見るところから始めます。 まずは…
はじめに なにはなくともCompute Shaderに挑戦してみよう!の回です。 いくつか文献をあたって学んだこと、そして実践したことなどをまとめています。 複数回にわたる予定です。その1回です。 (いきなり余談ですが、Compute Shaderに関する書籍やサイトっ…
ラムダ式を使えるようになりたいと思って、人様の書いたコードを見様見真似で書いているうちに雰囲気を掴めたので簡単な例を出してまとめておく。 やることは与えられた数値の配列から正の数値だけに絞るという超簡単なもの。 まずは素直に... using System.…
はじめに Unityで仕事を初めて2ヶ月が経って、コルーチンを使った非同期処理みたいなのはスムーズに書けるようになってきたが、周りはUniTaskとか使っていてレビューのたびに「え、ここってこういうことなんですか?」みたいなコメントをして人のリソースを…
※動きます。 Inspectorの様子 メモ child = new GameObject("Fractal Child").AddComponent<Fractal>(); 再帰させたいだけなのでただのGameObjectを作成してこのコンポーネント自体をアタッチしている。 float t = i / (maxDepth - 1f); t *= t; ...... mats[i, 0].co</fractal>…
こちらの続きです。 Meshを無数に生成しそこにPerlinNoiseをかけることで地形っぽい形状を作り出します。 この部分がキモ。 というか、なるほどー、となった。 「1つの四角 = 2つの三角 = 6つの頂点」 // 1つ目の三角 triangles[tris + 0] = vert + 0; trian…
特に面白みはないけどスクリプトから動的にMeshを描画することができたので今日は満足。 というかVEXでおんなじようなこと書いたなぁ。 参考 www.youtube.com
さきに使ったスクリプト貼っとく。 gist.github.com 学んだこと ①スクリプトからプロパティへのアクセス id = Shader.PropertyToID("_Color"); ... mat.SetColor(id, Cd); シェーダーのプロパティへは SetXXX みたいなメソッドでアクセスができるっぽいのだ…
あるオブジェクト(親)に対してInstantiateで子オブジェクトを任意の数生成したり、あるいはそのオブジェクトの子オブジェクトをまとめて消したりしたいケースは多い。 [ContextMenu("XXXX")] はコンテキストメニューに"XXXX"の名前で新たに項目が追加され…
Unityのエディタ拡張の方法の一つとして自作のメニューバーを作るときに使えるAttributeがあります。それがMenuItemってやつです。 一番単純な例として、Asset/Editor/CustomMenu.csというスクリプトを以下のように書きます。 using UnityEngine; using Unit…