sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

Unity

Unity Legacy Sprite Packer と Simple Sprite Packer の更新

古い記事で sprite をインポートする際は、Simple Sprite Packer のプラグインを使用していました。ここ数年の間、Unity をあまり触れることができなかったのですが、久しぶりにアプリを作る際に sprite の読み込みでこの Assets を使用すると obsolete の表…

Unity FPS の設定変更のやり方

Unity のアプリを作っているときに FPS を設定する機会がありました。 レバーレスコントローラーを練習するアプリを作ろうと思ったんで、60FPSに固定してやる必要がありました。ちなみに、こんな雰囲気のアプリになりました。(Android で動かして遊ん…

Unity「2D game art, animation, and lighting for artists」を日本語で読む

2022年5月6日に Unity Blog より「過去最大ボリュームの e ブック:アーティストのための 2D ゲームアート、アニメーション、ライティング」の記事があがりました。 まだ内容はよくわかりませんが、面白そうなので読み進めていこうと思います。個人的に和訳…

Unity アセット管理 Addressables の基本的な考えと使い方

Addressables の仕組み is なに? Addressables の使い方 テスト Event Viewer ロード/アンロードを可視化する 参考 画像などのアセットデータをプロジェクトに追加して利用する方法として、以下のような手法が主に利用されると思います。 Resources Asset B…

Unity Assets, Resources and AssetBundles の記事(雑訳)

1. AsesetBundle と Resources のガイド 2. Assets, Objects and serialization 2.1 アセットとオブジェクトの内部 2.2 オブジェクト間の参照 2.3 なぜファイル GUID とローカル ID か? 2.4. 合成アセットとインポーター 2.5 シリアライズとインスタンス Mo…

Unity MVP パターンを利用した UI 設計

MVP パターン is なに? Model は POCO なオブジェクトか? サンプル 参考 この記事は torisoup さんの「UniRX/UniTask 完全理解」P318 の MVP パターンについて個人的に学習内容をメモする記事です。 MVP パターン is なに? UI を実装するときの実装パター…

Unity アプリ名、アイコン、スプラッシュスクリーンなどアプリ開発の初期設定まとめ(Android)

アプリの名称の設定 デフォルトの名前空間設定 アイコンの設定(Android) スプラッシュスクリーンの設定 アプリケーションのコードビルド 参考 アプリを作成するときに最低限やったほうがいいと思った設定をまとめます。(Android 対応) アプリの名称の設…

Unity HP スライダーのサンプル

スライダーを HP(体力)ゲージにする 体力 33% 以下 で Fill Area を差し替える HP(体力)ゲージを減らすサンプル サンプル 参考 テストしていたプログラムの副産物として HP スライダーが出来たのでメモ。 EventTrigger のちょうどいいテストデータでもあ…

Unity 放置ゲームにおける「日付と時刻変更」基本的な対策

日付と時刻の設定値を取得するネイティブプラグイン ネイティブプラグインを利用する Unity スプリプト Android の APK をうまく出力できないとき 動作のテスト 対策の発展形 サンプル 参考 スマートフォンの放置ゲームを作ろうと思ったら、開発者が必ず注意…

Unity エディタ拡張でスクリプトファイルのテンプレートを作成する

Unity のスクリプトファイルを標準の作り方だと「Create/C# Script」をつかうと思いますが、十分なフォーマットとは言えないですよね。ほかにも 文字コードを OS にあわせたい MonoBehavior を継承しないクラスでいいときがある ときどきは最初から UniRx を…

Unity C# 非同期、async/await、コルーチンを整理する

async/await とは await をつけたコードはどのような内部動作になるか コルーチンと yield return Unity の非同期処理(≠マルチスレッド) 用語のややこしさ サンプル 参考 タイトルのとおり、「非同期」がキーワードです。たとえば、つぎのような問いを整理…

Unity スクリプトコードを Visual Studio でステップ実行・ブレークポイントを使ってデバッグをする

環境構築 デバッグ(アタッチ)のやり方 デバッグの便利な設定・応用 DebuggerDisplay 属性 デバッグとテスト 参考 Unity のコード書いたあとに、Visual Studio(コードエディター)を使って、コードのステップ実行やブレークポイントを設置して気になる箇所…

Unity コードをマネージド プラグイン (DLL) を作成して利用する

Visual Studio 2019 でライブラリープロジェクトを作成 クラスライブラリーに Unity の DLL を追加する 利用 参考 C# で書いたコードをあらかじめ マネージド プラグイン として DLL 化して、Unity で利用するやり方をメモした記事です。自分で使うライブラ…

Unity ローカルプッシュ通知のやり方 (Android)

Unity Mobile Notifications Package をインストールする プロジェクト設定 アイコン アセット共通の命名規約の例 スプリプトの実装 singleton クラスで保持する例 通知をテストする(+使い方) サンプル 参考 この記事は Unity で(ローカル)プッシュ通知…

Unity 変数の値が変化したとき“1度だけ”コードを実行したい「ObservedValue」パターン

「ObservedValue」はどういうものか(The new class in Extensions, ObservedValue: what is it for and how to use it) 補足(ObservedValue のコード確認) パフォーマンスに関する意見 参考 変数の値が変化したとき“だけ”コードを実行したいというような…

Unity 開発に関する 50 の Tips 〜ベストプラクティス〜(2016 Edition)

この記事は「Unity開発に関する50のTips 〜ベストプラクティス〜(翻訳)」を読んでとても参考になったので、その続編になる「50 Tips and Best Practices for Unity (2016 Edition)」の内容を超訳(勉強のため個人的に訳)したものです。 Qiita にもあげて…

Unity アプリケーションのエントリーポイントを作る

RuntimeInitializeOnLoadMethodAttribute 注意 過去のログ 参考 Unity のプログラムを作成していて、ゲーム全体を通して一番最初に実行される(通常の条件で最初に実行させる)メソッドを使いたいときがあると思います。 他のものでたとえると、C++ や C# の…

Unity ダイアログをポップアップするときのエフェクト(拡大・透過)

拡大(スケール)エフェクトの追加 透過度エフェクトの追加 サンプル 参考 「Unity キャンバス内に Scroll View を使ったダイアログをポップアップ」の記事の続きです。 前回の記事で、ポップアップするダイアログをシンプルに作成しました。なので、応用と…

Unity キャンバス内に Scroll View を使ったダイアログをポップアップ

ダイアログの構成 ダイアログの構成を考える スクリプト サンプル 参考 ダイアログを表示するサンプルです こんな感じで、Canvas 上のボタンを押下すると、画面全体に背景つきのダイアログ(ポップアップ)を表示するサンプルです。(エフェクトも省略してい…

Unity Ads を利用して広告表示するためのサンプル

Unity の広告表示 Unity DashBoard Unity で Ads を利用する手続き Settings 有効化 Ads のスクリプト 動かしてみる 広告のよい使い方ノウハウ 参考 Unity の広告表示 Unity のなかで手早く広告表示をするなら、Unity 公式の広告プラットフォームの「Unity A…

Unity Canvas を使った2Dゲーム画面設計と Reference Resolution のプラクティス

Canvas(画面サイズ)の設定 画面サイズの確認 Pixels Per Unit を1にしない例(1) Pixels Per Unit を1にしない例(2) 応用編 参考 過去の記事では、通常どおりのカメラ空間で2Dゲームの構成を作成しました。その後、「スマートフォン(複雑なアス…

Unity ScriptableObject を利用してシーンの流れをよくする、シーン間のデータやりとり

シーンの間を超えるデータ共有のやり方 ScriptableObject を利用したシーン管理の設計例 シーン移動を管理する ScriptableObject 使ってみる例 ポイント LoadSceneMode.Additive の注意点 シーン間でデータを安全に共有するプラクティス サンプル 参考 Scrip…

Unity TextMeshPro で画像 (sprite) つきテキストを表示する

TextMeshPro を初めて使うときのインポート TextMeshPro で SDF データを作成する 同じ文字を複数登録しようとしたとき フォントの SDF データ(アトラスファイル)から Material Preset を生成する 漢字を利用するとき 別のフォントで特定の文字を代替する …

Unity アプリケーションのメモリー使用量を可視化する

監視するメモリー量のポイント 1「アプリケーション全体」の消費メモリーの取得方法 Unity Editor (Windows) Android 2、3「Unity が管理する」メモリー使用量の取得 消費メモリー量をどの程度に抑えるか? 使用メモリー例 例1(ダンジョンメーカー) 例…

Unity Shuriken を使って FF5 の黒魔法フレアっぽいエフェクトをやる

実装したことの流れ 位置調整用の親 Prefab フレアの material パラメーターの設定 「中心に集まる」エフェクト 「爆発する」エフェクト サンプル 参考 最初に成果物を提出。こんな感じになりました。それっぽく見えるとうれしいですが、ROM を解析して厳密…

言語ごとの疑似乱数の種類と Xorshift RNGs による実装

この記事は、いろいろな言語・ゲームに用意されている乱数の実装例と、C# で実装した Xor shift RNGs による疑似乱数生成を使用する雰囲気をまとめた記事です。 いろんな言語 標準ライブラリーの乱数 C C# Java Python Ruby JavaScript Unity ゲーム Xorshif…

厄介なフォーマットの CSV ファイルを読み込む

古いソフトウェアが保存しているセーブデータファイルを開いてみると、CSV ファイルだった、なんてことが 2020 年の今でもあるようです。 厄介な CSV ファイル 使い方 テストによる検証 サンプル 参考 場合によっては CSV 形式といっても、ときどきちょっと…

Unity スクロールビューのつくり方・ポイント

スクロールビュー(uGUI で自作) uGUI で用意された Scroll View レスポンシブなデザインで利用する サンプル 参考 諸々を参考にスクロールビューを使ってみたので、ポイントをメモ。こんな感じのものが簡単にできました。 スクロールビュー Unity uGUI の…

Unity ダメージ表示のアニメーションを(Final Fantasy 5, 6)っぽくやる

最初に成果物を提出。こんな感じになりました。それっぽく見えるとうれしいですが、ROM を解析して厳密にやったわけではないです。 このポロポロ感がほしかった データの詳細は、記事の最後に今回のサンプルデータを公開しているので、そちらをご確認くださ…

Unity モンスターを倒したエフェクト(Final Fantasy 5)っぽくやる

最初に成果物を提出。こんな感じになりました。それっぽく見えるとうれしいですが、ROM を解析して厳密にやったわけではないです。 気持ちいい消え方ー データの詳細は、記事の最後に今回のサンプルデータを公開しているので、そちらをご確認ください。 実装…