MonoBehaviour による衝突検出をおこなうにはCollider をつけたオブジェクトに直接スクリプトをアタッチする必要があるので、検出したあと他のスクリプトで処理を行いたい場合は一工夫おこなう必要がある。 イベントごとにそれぞれ別な処理を都度作るのはめ…
特定のライトを特定のオブジェクトのみ照らすように設定します。
Texture2D で動的に生成したテクスチャを png 形式で保存、その後すぐアセットとしてスクリプトで扱いたい場合が結構あるのですが、クラスやメソッドによってパスの扱い方に差があったりして結構めんどうなのでスニペットを置いておきます。
カスタムエディターを作成しているときに、クリックやマウス移動やキー入力などをシーン中の操作(ショートカット)とは別に実装を行いたい場合があります。 例えば、シーンビューでオブジェクト選択中に R キーを押すと回転を調節するハンドラに切り替わり…
カテゴリって言うのかわからないですけど、マテリアルでシェーダーを選択するときに シェーダーが階層状に分けられているアレです。 ShaderGraphを使うとデフォルトで Sahder Graphs 下に分けられますが、 ここをカスタムしたい場合
Unreal Engine でストアから3Dモデルなどをダウンロードした際、いったん Vault Cache と呼ばれるフォルダにデータが保管され、そこからプロジェクトにインポートされます。 そのキャッシュフォルダはランチャーから確認できます。 Epic Games Launcher から…
ロシアのウクライナ侵攻から一か月以上たち、毎日毎日暗いニュースばかりで嫌になりますね。 戦地から遠く離れた島国では「寄付するにも金がなあ...」とヤキモキするのがせいぜいですが、自分になにができるか考えた結果、 先日公開したアセットを使って、Ho…
表題とおり、エディタ拡張ツールを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に設定してあるアニメーションのポーズをとらせたかったのに方法がわからなかったので、 スクリプトで強引に解決した。
Blenderで3Dモデルを作成したり編集すると、プロジェクトデータ(拡張子 .blender のファイル)をそのままUnityにインポート でき、Unityのプロジェクトウインドウからダブルクリックすればそのまま Blender を起動できたりして便利です。 ただデフォルト設定…
LUT は色をほかの色にマッピングするテーブルテクスチャのことで、これを使うとおもしろい色彩効果を作れたりします。 LUT適用前 LUTとして使用するテクスチャ LUT適用後 URP の Post Process でも Color Lookup という名前で実装されており使えるのですが、…
Unread Engine は Visual Studio でC++言語を使ってプログラム組むのが前提らしい。 Unityでも Visual Studio を使っていたので使い勝手的には非常にありがたい。 (ちなみに自分はVSCodeより断然VisualStudio派) ということでインストール済みのVisual Stu…
ゲームのプロジェクトなんてただでさえ容量がでかいので、テスト的に新規作成しまくってるとすぐストレージが圧迫されたりします。 「ひーもうディクスいっぱいだよぅ」と、いらないプロジェクトは削除した、でもまだ全然足りない というときにまずチェック…
Unreal Engine 4 で空を配置する手順です。
UE4のチュートリアルを進行中。 learn.unrealengine.com
デフォルトではGameObjectに同じスクリプトを2個以上つけてもなんの問題もなく動いてしまうので、 非常に見つけづらいバグのもとになってしまいます。
コライダーなどのコンポーネントがついていることを前提としたスクリプトを書いた時、 GameObjectやプレハブにスクリプトをつけるときに必要なコンポーネントを全部手作業でつけたりしていませんか? そんなとき、スクリプトと同時にUnityが自動でコンポーネ…
Animationウインドウを使うと、Unity上で Transform 移動などの単純なアニメーションをすぐ作ることができます。 そして実は、Humanoid(リグを設定した人物モデル)用アニメーションも作れます。 単純な静止ポーズがほしいなあと思ったときに手っ取り早く作…
3Dグラフィックスを描画するときに、ディスプレイ上の描画位置を計算する処理が MVP行列 を使った座標変換です。 モデル行列、ビュー行列、プロジェクション行列を使った変換のことですが、Unity上で ShaderLab を使ってシェーダーを書く場合、 それぞれシェ…
知ってのとおりiOS14から、アプリ内でパーソナライズ広告を表示するためのトラッキングを許可するダイアログを実装する必要があります。 もちろんUnityのゲームでも対応する必要があるので、手っ取り早く最速で 実装する方法をまとめました。 Xcodeのフレー…
VisualStudio (for Mac) で開発していると、 Unityではコンパイルエラーが出ていないのにVSのみエラーが発生している! そのせいでブレークポイントが貼れない! クソが! となる場合があります。(私だけ?) その場合、