いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity : 衝突検出したら他のスクリプトに通知する汎用コンポーネント

MonoBehaviour による衝突検出をおこなうにはCollider をつけたオブジェクトに直接スクリプトをアタッチする必要があるので、検出したあと他のスクリプトで処理を行いたい場合は一工夫おこなう必要がある。 イベントごとにそれぞれ別な処理を都度作るのはめ…

Unity : HDRPでライトレイヤーを設定する

特定のライトを特定のオブジェクトのみ照らすように設定します。

Unity Editor : Texture2D を png 形式で保存してアセットとしてインポートする

Texture2D で動的に生成したテクスチャを png 形式で保存、その後すぐアセットとしてスクリプトで扱いたい場合が結構あるのですが、クラスやメソッドによってパスの扱い方に差があったりして結構めんどうなのでスニペットを置いておきます。

Unity : SceneView でキー操作を検出してキャンセルする

カスタムエディターを作成しているときに、クリックやマウス移動やキー入力などをシーン中の操作(ショートカット)とは別に実装を行いたい場合があります。 例えば、シーンビューでオブジェクト選択中に R キーを押すと回転を調節するハンドラに切り替わり…

Unity Shader Graph : シェーダーのカテゴリを変更する

カテゴリって言うのかわからないですけど、マテリアルでシェーダーを選択するときに シェーダーが階層状に分けられているアレです。 ShaderGraphを使うとデフォルトで Sahder Graphs 下に分けられますが、 ここをカスタムしたい場合

Unreal Engine : マシンの容量が圧迫されてきたらキャッシュフォルダを確認

Unreal Engine でストアから3Dモデルなどをダウンロードした際、いったん Vault Cache と呼ばれるフォルダにデータが保管され、そこからプロジェクトにインポートされます。 そのキャッシュフォルダはランチャーから確認できます。 Epic Games Launcher から…

How To Write "NO WAR" プロジェクトを始めました

ロシアのウクライナ侵攻から一か月以上たち、毎日毎日暗いニュースばかりで嫌になりますね。 戦地から遠く離れた島国では「寄付するにも金がなあ...」とヤキモキするのがせいぜいですが、自分になにができるか考えた結果、 先日公開したアセットを使って、Ho…

AssetStoreにて手書き風出現エフェクト追加ツール Handwriter をリリースしました

表題とおり、エディタ拡張ツールをUnityAssetStoreでリリースしました。 AssetStore では初リリースプロダクトです。 TextコンポーネントやImasgeコンポーネントを手書きっぽく表示されることができます。 "書き順を再現できる" と言えばわかりやすいか。 as…

Unity : EditorWindowのタイトルを変更する

EditorWindow を作ると、タブに表示される名前がデフォルトだと namespace を含めたクラス名になる 変更したい場合は GetWindow の引数に title を指定する // ウインドウを作成 MyEditorWindow window = (MyEditorWindow)EditorWindow.GetWindow( t: typeof…

Extenject (旧Zenject) : シーンに親子関係を持たせてDIする

Extenject を使っていて、 すでに読み込み済みのシーン内のコンポーネントを、追加で読み込むシーンにDIしたい場合 Scene Parenting という機能があります。 GitHub - Mathijs-Bakker/Extenject: Dependency Injection Framework for Unity3D

Unity2021.2 でシーンビューにTransformのハンドルが表示されない

Unity2021.2 でシーンにオブジェクトを配置したときに Transform の位置を変えたりするハンドルが表示されなくなる場合があります。 (Unity2021.2.2 現在まで確認) 空のGameObjectにはハンドルが表示される MainCamera には表示されない...!? すぐアップ…

Unity : URP + ShaderGraph でモザイク

またアホみたいなことを思いついてUnityでモザイクする方法を探していたら、 意外と簡単にできました。 Render Pipline の設定 Shader Graph アセットを作成する Shader Graph のプロパティの追加 ノードをつなぐ マテリアルを作成 シーンにモザイク表面とな…

C# : 文字列からEnum値に変換する

エディタスクリプトとかで、文字列をパースしてEnumとして取りたい場合があったので。 以下のようなEnumが定義されている場合 enum TestEnum { Unity, Test, Fakku }

Unity : 配列の要素を Random.Range で取得するときに最後の要素だけなぜか出てこない

うっかりやってしまったのでおさらい... Transform[] TransformList; TransformList[Random.Range(0, TransformList.Length - 1)]; みたいに Length - 1 をつかってランダム値を取得しようとするとちゃんと取得できませんよって話。 基本的な仕様の理解 Unit…

Unity : エディタ拡張スクリプトでプロジェクト内にフォルダを作成する

エディタ拡張で、ある命名規則で自動でフォルダ作ったりする場合にどうするか調べました。

Unity : エディタスクリプトからPlayモードを開始する

エディタスクリプト内で EditorApplication.EnterPlaymode 関数を呼び出すことで、 任意のタイミングでPlayモードに入ることができます。 前回やったインスペクタのボタンと組み合わせ、 ボタンを押したらエディタで前処理してPlay開始ということが可能にな…

Unity : インスペクタに表示させたボタンから任意の関数を実行する

下のようなかんじでインスペクタにボタンを表示させ、 押したときに MonoBehaviour の任意の関数を実行させる。

Unity : シーン編集中にAnimator付き3Dモデルにポーズをとらせる

シーン内にオブジェクトを配置している際、人物モデルのAnimatorに設定してあるアニメーションのポーズをとらせたかったのに方法がわからなかったので、 スクリプトで強引に解決した。

Blenderの自動バックアップを無効にする

Blenderで3Dモデルを作成したり編集すると、プロジェクトデータ(拡張子 .blender のファイル)をそのままUnityにインポート でき、Unityのプロジェクトウインドウからダブルクリックすればそのまま Blender を起動できたりして便利です。 ただデフォルト設定…

Unity : URPのPostProcessでLUTを使う

LUT は色をほかの色にマッピングするテーブルテクスチャのことで、これを使うとおもしろい色彩効果を作れたりします。 LUT適用前 LUTとして使用するテクスチャ LUT適用後 URP の Post Process でも Color Lookup という名前で実装されており使えるのですが、…

UnrealEngine : UnityでVisualStudioをインストール済みだった場合の設定

Unread Engine は Visual Studio でC++言語を使ってプログラム組むのが前提らしい。 Unityでも Visual Studio を使っていたので使い勝手的には非常にありがたい。 (ちなみに自分はVSCodeより断然VisualStudio派) ということでインストール済みのVisual Stu…

Unityマシンの容量が圧迫されてきたら確認すること

ゲームのプロジェクトなんてただでさえ容量がでかいので、テスト的に新規作成しまくってるとすぐストレージが圧迫されたりします。 「ひーもうディクスいっぱいだよぅ」と、いらないプロジェクトは削除した、でもまだ全然足りない というときにまずチェック…

UnrealEngine4 : 空を追加する

Unreal Engine 4 で空を配置する手順です。

UnrealEngine4 : 配置したオブジェクトを地面に密着させる

UE4のチュートリアルを進行中。 learn.unrealengine.com

Unity : スクリプトを重複して付けてしまうのを防止する

デフォルトではGameObjectに同じスクリプトを2個以上つけてもなんの問題もなく動いてしまうので、 非常に見つけづらいバグのもとになってしまいます。

Unity : スクリプトに必要なコンポーネントを自動でつける

コライダーなどのコンポーネントがついていることを前提としたスクリプトを書いた時、 GameObjectやプレハブにスクリプトをつけるときに必要なコンポーネントを全部手作業でつけたりしていませんか? そんなとき、スクリプトと同時にUnityが自動でコンポーネ…

Unity : Animationウインドウで Humanoid アニメーションを作成する

Animationウインドウを使うと、Unity上で Transform 移動などの単純なアニメーションをすぐ作ることができます。 そして実は、Humanoid(リグを設定した人物モデル)用アニメーションも作れます。 単純な静止ポーズがほしいなあと思ったときに手っ取り早く作…

Unity : MVP行列をスクリプト側で計算してシェーダーに渡す

3Dグラフィックスを描画するときに、ディスプレイ上の描画位置を計算する処理が MVP行列 を使った座標変換です。 モデル行列、ビュー行列、プロジェクション行列を使った変換のことですが、Unity上で ShaderLab を使ってシェーダーを書く場合、 それぞれシェ…

Unity : iOS14のIDFAトラッキング許可ダイアログを実装する

知ってのとおりiOS14から、アプリ内でパーソナライズ広告を表示するためのトラッキングを許可するダイアログを実装する必要があります。 もちろんUnityのゲームでも対応する必要があるので、手っ取り早く最速で 実装する方法をまとめました。 Xcodeのフレー…

Unity : VisualStudio で突然コンパイルエラーが発生してデバッグできなくなった場合の解決方法

VisualStudio (for Mac) で開発していると、 Unityではコンパイルエラーが出ていないのにVSのみエラーが発生している! そのせいでブレークポイントが貼れない! クソが! となる場合があります。(私だけ?) その場合、


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。