Unity

【Editor拡張】条件によってインスペクターから編集不可能にする属性を作った

Unreal EngineにはEditConditionというメタデータ指定子があります。 Unityで例えると属性で渡された条件がtrueのときインスペクター編集が不可能になる動作。 誰かがパラメータ用のScriptableObjectを触るときに 不正な値を入れないように対策させるときに…

【Unity】RigidBodyを使ったゲームらしい移動方法について探る

RigidBodyを使ったプレイヤーの動き、手早く作ると多分これが一番早いと思います。 Rigidbody2D rb = GetComponent<Rigidbody2D>(); if (rb) { float hori = Input.GetAxis("Horizontal"); float speed = 5.0f; rb.velocity = new Vector2(hori * speed, m_rb.velocity.y)</rigidbody2d>…

【Unity1week】「1ボタン」に参加したゲームの振り返りを行う

Unity1week「1ボタン」に参加しました。 今回はこのゲームの振り返りを行いたいと思います。 unityroom.com 目標 個人的な目標 技術的な目標 チーム内の目標 良かった点 提出できた 一緒に制作する人がいた Git・SourceTreeの使い方を教えつつ作業ができた U…

【日記】9/11(月)~9/17(日)の間にu1w準備のために作ったもの

unity1weekが開催されてます!!! お題は「1ボタン」!シンプル…。 【RT希望】Unity 1週間ゲームジャム 第27回 始まりました! 今回のお題は「1ボタン」です! https://t.co/2uhr9qWnBr Unityを使って1週間でゲームを作る、初心者大歓迎のゆるいイベント…

【Editor拡張】再帰的にマテリアルを割り当てるツールを作った

余談 本題 ソースコード 余談2 参考にしたサイト 余談 来週にはunity1weekが開催されますね! 【RT希望】2023年09月18日(月)〜 #unity1week を開催します。 1週間でゲームを作り、みんなで遊ぶ、初心者大歓迎なイベントです。ルールや過去作品はリンク先を…

【日記】オレオレステートマシン最強伝説

再来週にはunity1weekが開催されますね!!! 【RT希望】2023年09月18日(月)〜 #unity1week を開催します。 1週間でゲームを作り、みんなで遊ぶ、初心者大歓迎なイベントです。ルールや過去作品はリンク先をご覧ください。 ゆるいイベントですので、どうぞ…

【Unity】インスペクターから関数を実行する

忙しいので一口メモ📝 ContextMenu属性を使用すると インスペクター上から任意のタイミングで関数が実行が可能。 docs.unity3d.com ソースコード /// <summary> /// ContextMenuサンプル /// </summary> [ContextMenu("FunctionExecution")] private void ExampleFunction() { Deb…

【Unity】段階的にObjectPoolに置き換えていく

Unityのよくある話として、Instantiate()とDestroy()が重いという話は聞いた事があると思います。 シューティングゲームを作ると仮定して考えてみましょう。 まずは作る Bulletクラス Gunクラス 実行結果 アクティブ状態を切り替えるようにする Bulletクラス…

【Unity】TextMeshProで日本語フォントを扱う

二番煎じかもしれませんが、TextMeshProを使用する際にいつも調べているので 自分のブログに書き記しておきます。 フォントをダウンロードする フォントのダウンロードは権利表記がしっかりしているものを選びます。 特に決まってない場合はGoogleFontがおす…

【Unity】できるだけ楽してテンプレートスクリプトが作成できる機能を用意する

Unityで新たにソースコードを作成する際、プロジェクトタブでC#スクリプト作成して、名前つけて、 クラスの役割に権利表記やXML タグを使ってコメント付けて、UTF-8で保存して、場合によっては継承元を変えて…。 赤文字の作業が非常に面倒なので、あらかじめ…

【Unity1week】「ふる」に参加したゲームの振り返りを行う

Unity1week「ふる」に参加しました。 先週は宣伝だけの記事でしたが、今回はこのゲームの振り返りを行いたいと思います。 https://t.co/YTlnNZRAlv#unity1week に参加!今回は共同で作業しましたペンライトを振って応援して女の子の魔力を溜めて吹っ飛ばせ!…

Unity1week 「ふる」 に参加しました!!!

魔法(?)が使えるアイドルを応援して敵をたくさん倒すゲームです! 今回は複数人で作業をしました。 https://t.co/YTlnNZRAlv#unity1week に参加!今回は共同で作業しましたペンライトを振って応援して女の子の魔力を溜めて吹っ飛ばせ!!ランキング機能付き…

【Unity】UIトランジション用のマテリアルを作る

今までシーンを跨ぐときにCanvasに黒いImageを置いて、 Colorのアルファ値を変更していました。 そろそろシェーダグラフを使って行った方が良いのでは?と思い、 勉強がてらトランジション用のShaderGraphを作ってみます。 UVタイリング UVにVector2をMultip…

【Unity】デバッグ情報を管理するクラスを作る

先週、突然パネルでポン風パズルゲームを作りたいと思い立ち、ちまちまと作っています。 下からブロックが上昇し、3つそろうと消えるゲームです。 youtu.be パネポン式パズルゲーム今週もちまちま作った上昇する仕組みを作った!一番の行は連鎖しないように…

【Unity】PresetManagerを使って設定のワークフローを改善させる

ドット絵などのテクスチャをインポートする際、手動で毎回設定していました。 同じ設定で良ければ、基底の設定(プリセット)として扱えるようになります。 docs.unity3d.com プリセットの作り方 インスペクターウィンドウの右上にあるスライダーのようなア…

【Unity】BuildSettingsにセットしたシーンをenumとして自動生成して扱えるようにする

シーンマネージャを使ってシーンを呼び出すとき、 引数にSceneの文字列またはIndex番号を渡します。 docs.unity3d.com こんな感じのソースコードを書いていた時期がありました。 using UnityEngine; using UnityEngine.SceneManagement; public class SceneC…

【Unity】Fusionを使って接続→操作まで作るメモ

Fusionを使って接続→操作までの処理を作ります。 プレイヤーが抜けたときなどの処理は記述せず、 なるべく接続→操作できるまでのデバッグに必要最低限なもののみに絞ります。 Fusionのインストール・登録 接続処理を作る スクリプトの大枠を作る #region INe…

【Unity】Fusionことはじめ雑記

GW中旬、電車で移動中にTwitterを閲覧。 そんな時に、気になるツイートを発見! シンプルなオンラインゲーム開発基盤です github にて無料公開しました!プレイヤーが移動し、テキストを送信すると、プレイヤーの頭上に表示されます。いろいろなリアルタイム…

【Unity】SpringJointコンポーネントを使ってワイヤーアクションみたいなものを作った

ワイヤーアクション、いいですよね…。 海腹川背みたいな挙動のものが作りたいな~~~とふと思いました。 youtu.be なので作りました。 SpringJointでワイヤーアクションっぽい挙動できた!これ、ランゲームに使えそうなのでしばらくこれを使って詰めて見よ…

【Unity】InputManager・InputSystemで一部のキーボード入力が反応しないまたは違う

入力周りを見ているとき、Unity入力システムには入力用の変数名と 実際の入力に相違があるものがあることに気づきました。 例えば以下のコード。 新しい方の入力、InputSystemを使って、 キーボードの「 ] 」の入力をさせるコードです。 using UnityEngine; …

【Unity】非Prefab状態でアニメーションクリップを作ってしまった/アニメーションイベントが再生されない

先週から、コンパクトなミニゲームを作っています。 正しい充電ケーブルを繋ぐという内容です。 完成したらUnityroomと、GooglePlayに出す予定(広告なし)。 来月末までに完成させたい。頑張るぞ~~~ で、今週はアニメーション周りで無駄に詰まってしまった…

【Unity】Addressableを使って生成したGameObjectが破壊されたときにリソースを解放させるメモ

今週はメモ。 Addressableについて触れる機会があった。 MonoBehaviourを継承させたクラスを作り、 アセットハンドルを保持、OnDestroy時に破棄する処理を記述。 using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManage…

【Unity】Youtubeとかニコニコとかによくある曲なってるときに四角いボリュームみたいなのが上げ下げしているアレを作った

タイトルが不穏かも。 なんなんだ…って思う人もいるかもしれませんが、 ひとまず以下の動画の50秒~を見ればわかります。 www.nicovideo.jp 良さげな曲とかMV聞いているときによくあるアレだよ!アレ!!! アレの名前 AudioSource.GetSpectrumData 実際に使…

【Unity】ビルド設定にシーンを追加したときに走る処理のメモ

私事で取得したいときがありました。 そんな便利なメゾットとかないかな~…と探していたのでメモ。 EditorBuildSettings EditorBuildSettingsを使う。 docs.unity3d.com using UnityEngine; using UnityEditor; public class SceneLogTest : MonoBehaviour {…

【Unity・C#】コルーチンについてまとめる

今回はコルーチンについてまとめます。 使えるようになると非常に便利! この記事はユニティちゃんライセンス条項の元に提供されています。 対応表 コルーチンとは? 使いどころ コルーチンの開始・停止 MonoBehaviour .StartCoroutine MonoBehaviour.StopCo…

【Unity・C#】どのような手順でラムダ式になったのか知る

前回、デリゲードについての記事を書きました。 nasan-log.hatenablog.com 今回はこのデリゲートをさらに使いやすくする機能、 ラムダ式についてです。 最小のラムダ式 関数からデリゲードへ デリゲードから丁寧なラムダ式へ 丁寧なラムダ式からラムダ式へ …

【Unity・C#】ActionとFuncについてまとめる

私事ですが、Action・Funcを使用する頻度が増えてきました。 しっかりと認識したことがなかったためメモを残しておきます。 対応表 基本的な使い方 Action Delegate Action Action<T> 引数の数について Func Delegate Func<TResult> Func<T,TResult> 引数の数について 参考にしたも</t,tresult></tresult></t>…

【Unity】AnimatorのTriggerについて理解する

UnityのアニメーションパラメータにはBoolとTriggerがあります。 どちらもフラグ管理用のパラメータです。 恥ずかしながら、今までアニメーションをしっかり触ったことがなく つい最近までこの2つのパラメータの違いがよく分かりませんでした。 なので、完…

【Unity】値が範囲内にあるかどうかの汎用関数を作る

UnrealEngineには値が範囲内にあるかどうかを判別するInRange関数があります。 イメージはこんな感じ。 docs.unrealengine.com docs.unrealengine.com これが便利なのでUnityでも使えるように作ってしまおう!という記事です。 ソースコード 使用例 ゆる解説…

【Unity 2021.3.8f1】ProBuilderを使って必要最低限のステージを作ってみる

今まで、私がUnityでプロジェクトを作り始めたり、 何か試したいと思ったときは以下のような感じの環境を作っていました。 いわゆる、デフォルトのキューブと平面でステージを作る方法ですね。 ただ、このステージの致命的な弱点として、圧倒的に見た目がダ…