Unity
MonoBehaviour による衝突検出をおこなうにはCollider をつけたオブジェクトに直接スクリプトをアタッチする必要があるので、検出したあと他のスクリプトで処理を行いたい場合は一工夫おこなう必要がある。 イベントごとにそれぞれ別な処理を都度作るのはめ…
特定のライトを特定のオブジェクトのみ照らすように設定します。
Texture2D で動的に生成したテクスチャを png 形式で保存、その後すぐアセットとしてスクリプトで扱いたい場合が結構あるのですが、クラスやメソッドによってパスの扱い方に差があったりして結構めんどうなのでスニペットを置いておきます。
カスタムエディターを作成しているときに、クリックやマウス移動やキー入力などをシーン中の操作(ショートカット)とは別に実装を行いたい場合があります。 例えば、シーンビューでオブジェクト選択中に R キーを押すと回転を調節するハンドラに切り替わり…
カテゴリって言うのかわからないですけど、マテリアルでシェーダーを選択するときに シェーダーが階層状に分けられているアレです。 ShaderGraphを使うとデフォルトで Sahder Graphs 下に分けられますが、 ここをカスタムしたい場合
表題とおり、エディタ拡張ツールをUnityAssetStoreでリリースしました。 AssetStore では初リリースプロダクトです。 TextコンポーネントやImasgeコンポーネントを手書きっぽく表示されることができます。 "書き順を再現できる" と言えばわかりやすいか。 as…
EditorWindow を作ると、タブに表示される名前がデフォルトだと namespace を含めたクラス名になる 変更したい場合は GetWindow の引数に title を指定する // ウインドウを作成 MyEditorWindow window = (MyEditorWindow)EditorWindow.GetWindow( t: typeof…
Extenject を使っていて、 すでに読み込み済みのシーン内のコンポーネントを、追加で読み込むシーンにDIしたい場合 Scene Parenting という機能があります。 GitHub - Mathijs-Bakker/Extenject: Dependency Injection Framework for Unity3D
Unity2021.2 でシーンにオブジェクトを配置したときに Transform の位置を変えたりするハンドルが表示されなくなる場合があります。 (Unity2021.2.2 現在まで確認) 空のGameObjectにはハンドルが表示される MainCamera には表示されない...!? すぐアップ…
またアホみたいなことを思いついてUnityでモザイクする方法を探していたら、 意外と簡単にできました。 Render Pipline の設定 Shader Graph アセットを作成する Shader Graph のプロパティの追加 ノードをつなぐ マテリアルを作成 シーンにモザイク表面とな…
エディタスクリプトとかで、文字列をパースしてEnumとして取りたい場合があったので。 以下のようなEnumが定義されている場合 enum TestEnum { Unity, Test, Fakku }
うっかりやってしまったのでおさらい... Transform[] TransformList; TransformList[Random.Range(0, TransformList.Length - 1)]; みたいに Length - 1 をつかってランダム値を取得しようとするとちゃんと取得できませんよって話。 基本的な仕様の理解 Unit…
エディタ拡張で、ある命名規則で自動でフォルダ作ったりする場合にどうするか調べました。
エディタスクリプト内で EditorApplication.EnterPlaymode 関数を呼び出すことで、 任意のタイミングでPlayモードに入ることができます。 前回やったインスペクタのボタンと組み合わせ、 ボタンを押したらエディタで前処理してPlay開始ということが可能にな…
下のようなかんじでインスペクタにボタンを表示させ、 押したときに MonoBehaviour の任意の関数を実行させる。
シーン内にオブジェクトを配置している際、人物モデルのAnimatorに設定してあるアニメーションのポーズをとらせたかったのに方法がわからなかったので、 スクリプトで強引に解決した。
ゲームのプロジェクトなんてただでさえ容量がでかいので、テスト的に新規作成しまくってるとすぐストレージが圧迫されたりします。 「ひーもうディクスいっぱいだよぅ」と、いらないプロジェクトは削除した、でもまだ全然足りない というときにまずチェック…
Animationウインドウを使うと、Unity上で Transform 移動などの単純なアニメーションをすぐ作ることができます。 そして実は、Humanoid(リグを設定した人物モデル)用アニメーションも作れます。 単純な静止ポーズがほしいなあと思ったときに手っ取り早く作…
3Dグラフィックスを描画するときに、ディスプレイ上の描画位置を計算する処理が MVP行列 を使った座標変換です。 モデル行列、ビュー行列、プロジェクション行列を使った変換のことですが、Unity上で ShaderLab を使ってシェーダーを書く場合、 それぞれシェ…
ローポリゴンモデル プロトタイプ・リアル志向モデル 自然環境用アセット と三種類のテーマで、 最大 90% 割引 になるセールが絶賛開催中です。 ※12/22追記 勘違いしてましたが上位のバンドルを買うと下位のバンドルもすべて手に入るセールみたいです。 あら…
ファッ Zenject Dependency Injection IOC | Integration | Unity Asset Store 残念ながらZenject Dependency Injection IOCはもう入手できません。 このアセットはアセットストアでの取り扱いが終了しました。アセットを新規に購入あるいは無償取得することは…
メニュー画面とかで使いたいこんな感じのスクロール領域の作り方。
ということにさっき気づいた。 Glitching with multiple cameras LWRP - Unity Forum Camera Rendering in LWRP - Google ドキュメント LWRPだとカメラごとにバックバッファーに書き出したデータを読み出して加工するから、違うViewPortとスケールになりうる…
Player設定の Fullscreen Mode を切り替えながらビルドしていると、全画面設定でビルドしたのにウインドウで表示されたり、前回起動したときの設定がそのまま使われているような動作になる。 どこかにキャッシュがあるんだろうなあと思って調べていたら、フ…
ボクセルのモデルがやっぱりちょっと物足りなかったので、NormalMap を自作して立体感を演出してみました。 Blender にモデルをインポート モデルのコピー モデルBのメッシュを変形 モデルAに焼き込み用マテリアルを作成 モデルAにNormalMap出力先テクスチャ…
PrefabUtility 使えば楽勝やろ(鼻ホジー)と思ってたらハマった。 さてどうやろう PlayMode中にシーン内のインスタンスの元プレハブを取得する PlayMode中のプレハブ関係 解 : SaveAsPrefabAsset
GitHubの公式リポジトリにやり方書いてあったので試した。 Manipulating the Stack · Unity-Technologies/PostProcessing Wiki · GitHub すでにPostProcess設定済みの前提での解説す。 操作に必要なクラス 各PostProcess効果ごとに定義されているクラス Post…
「公式サイトのチュートリアルどおりにやったのに思ってた影と違う!」 「ここに影が出てない!」 なーんてこと、まれによくあるよねぇ(欧米通販風) そしていつしかライトマップの存在自体を記憶のすみに追いやってしまう... それはもったいないので、最低…
年末にダウンロード版で買った ペルソナ5 をいまさらずっとやってて、このゲームはUI表現の宝庫ですね。勉強になります。 おもしろい表現たくさんあるのですが、キャラクターのセリフが乗ってるフキダシ枠の端っこが動くのがおもしろかったので、マネしてみ…
ECSわかった系のスライドを読んでもよくわからなかったので、これはもう実際書いて覚えるしかないと思ったので書いてみました。 今回はGameObjectにつけた自作スクリプトをECSから操作するいわゆる HybridECS をやります。 ECSを使えるようにプロジェクト設…