(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発しているゲームです!


SpriteAtlasから取得(Clone)した画像を使ってるImageを検索するエディタ拡張【Unity】【エディタ拡張】


この記事でのバージョン
Unity 2022.3.16f1


はじめに

以前、シーンを開いた時等に「Could not extract GUID……」

「Broken text PPtr. GUID……」とエラーが出る場合の原因が、

Unityを再生していない時にエディタ拡張でSpriteAtlasからSpriteを取得(Clone)し、

そのSpriteをImageに設定した状態でシーンを保存していた事だという事がありました。


という事で今回は、そんな時に使える

SpriteAtlasから取得した画像を使ってるImageを検索するエディタ拡張の紹介です!

FindCloneImagesSearcher

続きを読む

Debug.logで出したログをConsole上で選択した時に、任意のオブジェクトを強調する方法【Unity】

この記事でのバージョン
Unity 2022.3.16f1


はじめに

今回はUnityのDebug.logで出したログをConsole上で選択した時に、

任意のオブジェクトを強調する方法の紹介です!


と言っても、第二引数で強調したいオブジェクトを指定するだけです。

//Inspectorで設定するやつ
[SerializeField]
private SpriteRenderer _spriteRenderer = null;

private void Start() {
  //自身を選択するログ表示
  Debug.Log("Log", gameObject);
    
  //Inspectorで設定したSpriteRendererを選択するログ表示
  Debug.Log("SpriteRenderer Log", _spriteRenderer);
}



テキストの内容が変わっても、画像とテキストを合わせてセンタリング(中央揃え)させる方法【Unity】【uGUI】

の記事でのバージョン
Unity 2022.3.16f1


はじめに

今回は画像(Image)とテキストを並べて設置した際に、

テキストの内容が変わっても、画像とテキストを合わせてセンタリング(中央揃え)させる方法の紹介です!


なお、uUGUIでの話で、テキストはTextMeshProでもTextでも可能です。


画像とテキストを合わせてセンタリングさせる方法

続きを読む

Content Size Fitterが自動で更新されない時に、手動で即座に更新する方法【Unity】

この記事でのバージョン
Unity 2022.3.16f1


はじめに

UnityにはContent Size Fitterという

RectTransformのサイズを自動で変更してくれるコンポーネントがあります。



ただ、自動レイアウト系は即座に更新されるわけではく、特定のタイミングで更新されるので、

場合によってはちょっと遅れて更新されたり、そもそも更新されない場合があります。

再構築は直ちに起こるわけではなく、レンダリングの起こる直前、現在のフレームの最後に発生します。直ちに発生しない理由は、これにより、レイアウトが同じフレームで何度も再構築される可能性があり、パフォーマンスへ悪影響を与えるためです。


と言う事で今回はContent Size Fitterを手動で即座に更新する方法の紹介です!

と言っても更新したいタイミングで以下のコードを実行するだけ。

/*_contentSizeFitterがContentSizeFitter*/

//縦と横のサイズ計算
_contentSizeFitter.SetLayoutHorizontal();
_contentSizeFitter.SetLayoutVertical();

//レイアウトを即時更新
LayoutRebuilder.ForceRebuildLayoutImmediate(_contentSizeFitter.GetComponent<RectTransform>());


なお、例のように画像とテキストを合わせてセンタリングする方法は以下の記事を参照のこと。





Unity+PlayFabでタイトルニュース(各ゲームごとのお知らせ)の設定&取得【Unity】【PlayFab】


この記事でのバージョン
Unity 2022.3.16f1
PlayFab SDK 2.136.220523


はじめに

今回はUnityでタイトルニュースのタイトルデータを使ってみようという感じの記事です!


ちなみに、PlayFabとはなんぞや?という方は以下の記事を参照の事。

ざっくり言うとサーバーサイドが関わる事を楽して実装出来るサービスです。



しかも10万ユーザまで無料で使えるので、「ユーザが増えないのにお金だけ払う」みたいな事がなく、

個人開発でも使い始めやすいですし、Microsoftのサービスという安心感まであります。

Pricing


なお、本記事は以下の導入やログイン処理が済んでいる前提になりますので、あしからず。





タイトルニュースとは

続きを読む

Unity+PlayFabでデフォルトの言語やユーザの言語を変える方法【Unity】【PlayFab】


この記事でのバージョン
Unity 2022.3.16f1
PlayFab SDK 2.136.220523


はじめに

今回はPlayFabのデフォルトの言語やユーザの言語を変える方法の紹介です!


ちなみに、PlayFabとはなんぞや?という方は以下の記事を参照の事。

ざっくり言うとサーバーサイドが関わる事を楽して実装出来るサービスです。



しかも10万ユーザまで無料で使えるので、「ユーザが増えないのにお金だけ払う」みたいな事がなく、

個人開発でも使い始めやすいですし、Microsoftのサービスという安心感まであります。

Pricing


なお、本記事は以下の導入やログイン処理が済んでいる前提になりますので、あしからず。





PlayFabのデフォルトの言語やユーザの言語を変える方法

続きを読む

端末やOS等の情報を含んだ問い合わせの作り方 (通知&自動集計機能付き)【Unity】

この記事でのバージョン
Unity 2022.3.16f1


はじめに

今回はGoogleフォーム(Google Forms)を使って、

端末名やOS等の情報を含んだ問い合わせ作成し、それをUnityから開く方法の紹介です!


なお、問い合わせがあった際にメールで通知したり、


スプレッドシート(Google Sheets)で自動集計する事も可能です!


ちなみに、スプレッドシートはもちろんGoogleフォームも基本的に無料で使えますし、

PCからでもスマホからでも回答する事が可能です。

Google Forms: オンライン フォーム作成ツール | Google Workspace


端末名やOS等の情報を含んだ問い合わせの作り方と自動集計する方法

続きを読む

GitHub Copilot ChatをUnity×Riderで使う方法と、コードについての質問を直接AIに出来ると生産性爆上がりするという話【Unity】【JetBrains Rider】【AI】

この記事でのバージョン
Unity 2022.3.16f1
JetBrains Rider 2022.1.1


はじめに

今回はGitHub×OpenAIが提供する、チャットでのAIのコーディング支援機能「GitHub Copilot Chat」



Unity×Riderで使う方法の紹介です!

コードについての質問を直接出来るので、生産性爆上がりする事間違いなしです!



なお、そもそもGitHub Copilotとは?Riderとは?という方は以下の記事を参照の事。

(両方導入済みの想定です)






GitHub Copilot ChatをUnity×Riderで使う方法と

続きを読む

Unityライセンス(プラン)の料金変更の件で、一番の問題は信用問題なのではないかという話【Unity】【雑記】

はじめに

Unityのライセンス料金の変更が発表されましたが、

これがなんとインストール数に応じて料金を払うという前代未聞の方式で、



主にUnityを使ってるゲーム開発界隈では大きな波紋を呼んでいます。(公式フォーラムも結構荒れてる)


と言っても、ライセンス料を払う閾値がかなり高いので、小規模な開発では関係なさそうですし、

(場合によっては料金が安くなる場合もある)

Unity Personal または Unity Plus を使用している場合:過去 12 か月の収益が 20 万米ドル以上で、かつ、サービス継続期間中のインストール数が 20 万回以上。
Unity Pro または Unity Enterprise を使用している場合:過去 12 か月の収益が 100 万米ドル以上で、かつ、サービス継続期間中のインストール数が 100 万回以上。

Unity のプランの価格設定とパッケージの更新 | Unity Blog


仮に閾値を大きく越えるものでもUnity Proであれば1本辺りの料金もそこまで上がらないので、

有料ゲームや単価が高い(課金主体?)無料アプリでは値上げではあるが致命的という程ではなさそうです。

ただし、DL数が多いが単価が高くない(広告主体?)無料アプリは大打撃ではあると思います。

Unity のプランの価格設定とパッケージの更新 | Unity Blog


なお、色々気になる事はありますが、情報が錯綜してて細かい部分の正しい情報が分からないので

とりあえず公式フォーラムのQ&AをDeepLで翻訳したものだけ置いておきます。

(記事執筆時点のQ&Aで、今後変わったり追加されたりすると思います。)

Q: インストール数はどうやって集めるのですか?
A: 当社独自のデータモデルを活用しています。それによって、あるプロジェクトでランタイムが配布された回数を正確に判断できると考えています。

Q: unityで作られたソフトウェアは、enterpriceライセンスであっても、実行されるたびにunityにホームコールされるのですか?
A: ランタイムのインストール回数のカウントには、多数のソースからデータを収集する複合モデルを使用しています。Unity Runtime FeeはGDPRとCCPAに準拠したデータを使用します。要求されているデータは集計されたもので、課金目的で使用されています。

Q: ユーザーがゲームを再インストール/再ダウンロード/ハードウェアを変更した場合、複数インストールとしてカウントされますか?
A: はい。クリエイターは今後のすべてのインストールに対して支払う必要があります。Unityはエンドプレイヤーの情報を受け取らず、集計データを受け取るだけだからです。

Q: 閾値を超えるほどの収益を上げたゲームに同じゲームのデモがある場合、デモのインストールも課金対象となりますか?
A: アーリーアクセス、ベータ、あるいはゲーム本編のデモであれば、そうです。デモからゲーム本編に移行できるのであれば可能です。そうでない場合、例えばアップグレードできない単一レベルであれば、そうではない。

Q: ゲームの海賊版に課金されないようにする方法は?
A: 同様の問題を解決している当社のAdsテクノロジーには、すでに不正検出のノウハウがあります。私たちは、ユーザーがこの件について懸念を抱いていることを認識しており、不正コンプライアンスチームに懸念を提出するためのプロセスを利用できるようにします。

Q: 生涯インストール数のトラッキングはゲームのライフサイクルのいつから始まるのですか?ベータ版は閾値にカウントされますか?
A: インストールの各初期化は、ライフタイムインストールにカウントされます。

Q: これはWebGLやストリームゲームに影響しますか?
A: すべてのプラットフォームのゲームが料金の対象となりますが、インストールと収益の両方のしきい値を超えた場合にのみコストが発生します。インストール(クライアント・デバイス上でのランタイムの初期化を含む)は、すべてのプラットフォームで同じようにカウントされます(WebGLとストリーミングを含む)。

Q: この料金は、発売からすでに何年も経っているゲームにも適用されるのでしょうか?もし2年前に基準を満たしたのであれば、1月から毎月インストールされた分の料金を支払うことになりますよね?(理論上は)。
A: はい、ゲームが適格であり、Unityランタイムを配布している場合、ランタイム料金が適用されます。ゲームのライフタイムインストール数を見て、ランタイム料金の適格性を判断します。その後、2024年1月1日以降に発生するすべての新規インストールに基づいてランタイム料金を請求します。


そしてここからがこの記事の本題なのですが、この件に関しての個人的に

一番の問題は料金よりも信用問題なんじゃないかな〜と思ったのですが、

Twitter(X)に書くには長くなりそうなので記事にまとめてみました!


信用問題

続きを読む