いんでぃーづ

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

Unity

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

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

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

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

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

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

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

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

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

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

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に設定してあるアニメーションのポーズをとらせたかったのに方法がわからなかったので、 スクリプトで強引に解決した。

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

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

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

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

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

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

AssetStoreセール情報 : 高品質モデルが最大 90% OFF になる MEGA バンドルセール開催中

ローポリゴンモデル プロトタイプ・リアル志向モデル 自然環境用アセット と三種類のテーマで、 最大 90% 割引 になるセールが絶賛開催中です。 ※12/22追記 勘違いしてましたが上位のバンドルを買うと下位のバンドルもすべて手に入るセールみたいです。 あら…

Zenject が Deplicated になってしまった

ファッ Zenject Dependency Injection IOC | Integration | Unity Asset Store 残念ながらZenject Dependency Injection IOCはもう入手できません。 このアセットはアセットストアでの取り扱いが終了しました。アセットを新規に購入あるいは無償取得することは…

Unity uGUI : 要素数に応じてスクロール領域が自動で変わるスクロールビューの設定

メニュー画面とかで使いたいこんな感じのスクロール領域の作り方。

LWRPだと複数カメラ使えないらしい

ということにさっき気づいた。 Glitching with multiple cameras LWRP - Unity Forum Camera Rendering in LWRP - Google ドキュメント LWRPだとカメラごとにバックバッファーに書き出したデータを読み出して加工するから、違うViewPortとスケールになりうる…

Unity : PC用ビルド時、ウインドウ表示と全画面表示設定を切り替えても反映されない場合の対策

Player設定の Fullscreen Mode を切り替えながらビルドしていると、全画面設定でビルドしたのにウインドウで表示されたり、前回起動したときの設定がそのまま使われているような動作になる。 どこかにキャッシュがあるんだろうなあと思って調べていたら、フ…

AssetStore から落としたモデル用の NormalMap を Blender で作成する

ボクセルのモデルがやっぱりちょっと物足りなかったので、NormalMap を自作して立体感を演出してみました。 Blender にモデルをインポート モデルのコピー モデルBのメッシュを変形 モデルAに焼き込み用マテリアルを作成 モデルAにNormalMap出力先テクスチャ…

Unity : PlayMode 中の変更をスクリプトでプレハブに保存、更新する

PrefabUtility 使えば楽勝やろ(鼻ホジー)と思ってたらハマった。 さてどうやろう PlayMode中にシーン内のインスタンスの元プレハブを取得する PlayMode中のプレハブ関係 解 : SaveAsPrefabAsset

Post Processing Stack V2の効果をスクリプトから動的に変更する

GitHubの公式リポジトリにやり方書いてあったので試した。 Manipulating the Stack · Unity-Technologies/PostProcessing Wiki · GitHub すでにPostProcess設定済みの前提での解説す。 操作に必要なクラス 各PostProcess効果ごとに定義されているクラス Post…

これやっとけばライトマップは焼ける!Unity 2018 ライティング設定7項目

「公式サイトのチュートリアルどおりにやったのに思ってた影と違う!」 「ここに影が出てない!」 なーんてこと、まれによくあるよねぇ(欧米通販風) そしていつしかライトマップの存在自体を記憶のすみに追いやってしまう... それはもったいないので、最低…

uGUIシェーダー:フキダシをわきわき動かす

年末にダウンロード版で買った ペルソナ5 をいまさらずっとやってて、このゲームはUI表現の宝庫ですね。勉強になります。 おもしろい表現たくさんあるのですが、キャラクターのセリフが乗ってるフキダシ枠の端っこが動くのがおもしろかったので、マネしてみ…

Unity : ECS全然わからない状態から、とりあえず使えるようにする

ECSわかった系のスライドを読んでもよくわからなかったので、これはもう実際書いて覚えるしかないと思ったので書いてみました。 今回はGameObjectにつけた自作スクリプトをECSから操作するいわゆる HybridECS をやります。 ECSを使えるようにプロジェクト設…


“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.


免責事項

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

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

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