【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週間でゲームを作り、みんなで遊ぶ、初心者大歓迎なイベントです。ルールや過去作品はリンク先をご覧ください。 ゆるいイベントですので、どうぞ…

【モデリング】BlenderでモデリングしてBlockbenchで色塗ってBlenderで動作させる

2か月前ぐらいからBlockbenchを使ってローポリを作る海外動画を見漁っていました。 ローポリ、かわいい…。 youtu.be で、実際に触ってみるとペイント機能がまあ使いやすい! テクスチャが描けない私ですが、ペイント機能だと塗り絵のように色が塗れます。 し…

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

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

【C#】recordのススメ

ダメージ計算があるゲームなどにおいて、 パラメータの値のみを格納しているデータクラスを 使用したい場面があったりします。 public class Parameter { public string name { get; init; } public int hp { get; init; } public int attack { get; init; }…

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

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

【C#】Listの内容をランダムにシャッフルする拡張メゾットを作る

リストの中身を手軽にシャッフルする拡張メゾットを作ります。 カードゲームなど、中身をランダムにさせたいときに使うかも。 ソースコード ソースコードはこちら。 使い方 通常通りリストを作成し、Shuffle()を呼び出すだけで完了します。 ▶使用例(クリッ…

【C#】自分だけのC#コーディングルールを作った

C#

タイトルの通り、自分用のC#コーディングルールを作成しました。 github.com 背景 環境・参考元 良かった点 ソースコードに一貫性ができる 共有ができる 日本語である 悪かった点 ソースコードが書けない 表現の言語化が難しい 終わりに 参考サイト 編集 コ…

【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】bit演算でフラグを持つ

特にRPGなどにおいて、状態異常を管理する際、 各状態異常に対してbool型を持つ方法が考えられると思います。 using UnityEngine; public class Sample : MonoBehaviour { private bool m_isPoison = false; private bool m_isParalysis = false; private bo…

【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 にて無料公開しました!プレイヤーが移動し、テキストを送信すると、プレイヤーの頭上に表示されます。いろいろなリアルタイム…

【イベント】Indie Games Connect2023に行ってきた!

昨日、KONAMI主催のインディーゲーム展示・即売会、 Indie Games Connect2023に行ってきました! 会場内は撮影禁止だったのでパンフレットのみの写真。 お昼にいったらすでに長蛇の列でした。 www.konami.com プレイしたゲームの中で3つをピックアップ! 蒐…

【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 {…