Unity でゲームを作ろうとすると、ほとんどの場合、Unity UI (uGUI) や TextMesh Pro といった Unity 公式のパッケージを何かしら使うことになります。 そしてそれらのパッケージの多くは、Unity Companion License というライセンスの下で配布されています…
はじめに Unity エディターにおいて、Undo 操作の登録を簡単に行うことができるようになるツールを公開しました! github.com Unity Undo Extensions の使いどころ Unity での開発では、エディター拡張を書いてメニューにオリジナルの項目を追加したり、Ins…
はじめに Unity のシーンやプレハブの中にある、Missing になってしまっている参照やコンポーネントを検索し、コンソールに表示するツールを公開しました! github.com 使い方 このパッケージをインストールすると、メニューに Tools/GIGA CREATION/Missing…
はじめに CSV の特定の列をリストにしたり、特定の列をキー・値に持つ辞書を生成できる、Unity 向けのツールを公開しました! github.com CSV を辞書にして表示させたもの 使い方 CSV からリストを生成する 1. 抽出したい CSV を準備します。 var csv = @" …
はじめに 概要 インストール Package Manager を使用する方法 手動でインストールする方法 使い方 基本の使い方 IDisposable とセットで使う 自作のインターフェイスとセットで使う API リファレンス 補遺 シングルトンとの使い分け サービスロケーターはア…
概要 Unity プロジェクトに Rainbow Folders を導入すると、Project View のフォルダアイコンがフォルダ名に応じたものになり、視認性が向上します。 このたび、その Rainbow Folders のフォルダアイコンのデザインに沿って作成した、自作のアイコンをいくつ…
はじめに Addressables のダウンロードを行う場合、普通にコードを書くと以下のようになります。 // ※ラベル名を指定してダウンロードする場合 // Addressable アセットのラベル名 string labelName = "LABEL_NAME"; // 指定したラベルを持つすべての Addres…
発生した問題 サーバーに、新しいコンテンツカタログの hash だけあり、json は無いという状況で Addressables.UpdateCatalogs() を実行すると、エラーは発生するもののなぜか try ~ catch をすり抜けてしまう。 try { // これがエラーになっても…… await Ad…
発生した問題 サーバーに置いてある Addressables のコンテンツカタログをアップデートしてから Addressables.CheckForCatalogUpdates() を実行しても、常に空のリストしか返ってこないという問題に遭遇しました。 解決方法 先に Addressables.InitializeAsy…
Unity の Package Manager でインストールしたパッケージを一括アップデートする方法です。 manifest.json から、アップデートしたいパッケージの行を削除する。 Unity Editor に戻る。 おそらくコンソールにエラーが出ると思いますが気にせず次へ。 manifes…
2023.02.20 追記 本記事で紹介しているスクリプトを発展させ、Package Manager から導入することができるサービスロケーターのパッケージを公開しています。 blog.gigacreation.jp はじめに 例えば GameManager のような、どこからでもアクセスしたい・一つ…
Prefab の Apply や Revert をし忘れていないかいつも心配になるので、それをチェックするエディター拡張を作成しました。 自分のワークフローだとルートに存在している Prefab だけをチェックするようにしたほうが都合が良かったのでそうしていますが、子孫…
PC モバイル はじめに PC では Post Processing を有効にしたいけど、モバイル端末では重たいので無効にしたい。 モバイル端末の場合はOnPointer*を切ってInput.Touchesを使いたい。 ……というように、PC とモバイル端末で処理を分けたいという場合がたまにあ…
github.com 使い方 このパッケージをインポートした状態でゲームをビルドすると、ビルドが開始された時刻を int のフィールドで保持した ScriptableObject がAssets/BuildTimestampDisplay/BuildTimestamp.assetに生成されます。 uGUI の Text にBuild Times…
はじめに 先日リリースした『ねねちーのお昼ご飯大作戦ある!』では、スクリーンショット付きで結果をツイートすることができます。 こんな感じ。 そしてこのたび、ここで使用したスクリプトを切り出して、GitHub にて公開いたしました。 github.com デモは…
この記事は「Unity アセット真夏のアドベントカレンダー 2020 Summer!」2 日目の記事になります。 昨日のアドカレは、汗人柱さんの「Massive Clouds Atmosなど雲、天候、昼夜が美しい空アセット8連発!グラフィック & 機能比較まとめ」でした。 明日のアドカ…
【フィードバック】 キャラクターがジャンプした時の効果音、魔法を放った時のエフェクト、ダメージを受けた時の画面の振動――こういったゲーム中で何かが起こった時に再生する演出のことを、TopDown Engine では【フィードバック】と呼んでいます。 今回は基…
キャラクターがジャンプできるようにする 今回は、キャラクターの基本的なアニメーションの一つ、ジャンプを作っていきます。 Part 3 で実行した「AutoBuild Player Character 2D」により、すでにキャラクターに Character Jump 2D がアタッチされているので…
「Interact」アクション TopDown Engine に Rewired を導入したところ、移動やジャンプはできるのに、話しかけたり扉を開けたりといった操作ができないという問題が発生しました。 この状態で A ボタンを押しても何も起こらない コードを見てみると、話しか…
ダイアログ(会話テキスト)を表示させる TopDown Engine には、シンプルなダイアログシステムが備わっています。今回はこれを利用して、NPC に話しかけるとメッセージが表示されるようにしてみましょう。 ダイアログゾーン キャラクターに話しかけられるよ…
CharacterMovement の代わりに、以下のスクリプトをアタッチします。 using System; using MoreMountains.TopDownEngine; using UnityEngine; public class CharacterMovementCustom : CharacterMovement { float secondaryHorizontalInput; float secondary…
TopDown Engine では、CharacterFallDownHoles2D コンポーネントを持ったキャラクターが「Hole」レイヤーに設定されたコライダーを通ると落ちることができるのですが、Hole のコライダーが Tilemap Collider 2D + Composite Collider 2D だった場合、初期状…
TopDown Engine で Rewired を使うには 「Rewired」という、様々な種類のコントローラーやキーボード、マウス、画面のタッチイベントといったあらゆる入力を簡単に管理できる、人気のアセットがあります。他の有名なアセットとの連携も多数サポートしている…
using UnityEditor; using UnityEngine; public static class HierarchyFontColoring { static readonly Vector2 offset = new Vector2(18f, 0); // どんなフォントカラーに変更するか static readonly Color separatorColor = new Color(1f, 0f, 0f); [Init…
ルームによってレベルを分ける Part 6 にて、レベル 1 を拡張し、2 つ目の部屋を作りました。その際、カメラの撮影範囲も広げたわけですが、現状だと片方の部屋からもう片方の部屋が見えてしまいます。 隣の部屋が見えないようにするには、スクリプトを書い…
プレイヤーキャラクターの初期位置を変える 現状では、プレイヤーキャラクターの初期位置を指定していないので、シーンを再生すると (0, 0, 0) の位置に生成されます。今回は、初期位置を任意の座標に変更していきます。 レベル 1 とレベル 2 のそれぞれで、…
レベル同士のシーン遷移 今回は、異なるシーンで作られたレベル同士を移動できるようにしてみましょう。 「sandbox_level2」というシーンを新しく用意し、以下のようなレベルを作りました。シーンは Build Settings にも忘れずに追加しておきます。 これを「…
異なるシーン間を移動する 今まではずっと単一のシーンで制作してきましたが、タイトル画面や違うレベルの画面(フィールド←→ダンジョンなど)を制作する場合、別のシーンにすることが多いでしょう。今回は、こうしたシーン間の遷移を実装していきます。 と…
フェードイン・アウトを実装する 前回、テレポーターによるセクション間の移動を実装しました。しかし、画面の切り替わりが一瞬で行われるため、少々見栄えが悪いです。そこで今回は、セクション間の移動時に画面をフェードさせてみたいと思います。 Canvas …
異なるセクション間を移動できるようにするには レベルの中に扉や階段を配置して、別のセクションへ移動できるようにしたいという場合も多いでしょう。今回は、TopDown Engine にある【テレポーター】という機能を使い、セクション間の移動を実装していきま…