おちゃのテクログ

DIY好き、スポーツ好きのプログラマです

Unityで2DGame開発するときの困りごとメモ

困りごとがたくさん出てくるのでメモしておきます。

 

2D Animation作成時にCreateBoneできない

お恥ずかしい。

開始点を指定するのはダブルクリックすればいいんですね。

ずっとドラッグして「ボーンが出ない!出ない!」と怒ってしまいました。

f:id:you_otya:20190727055721p:plain

 

2D Animation作成時にSceneにBoneが表示されない

お恥ずかしい。(2回目)

GizmosがOFFになっていました。

f:id:you_otya:20190727072513p:plain

f:id:you_otya:20190727072519p:plain

 

↓有効にすると

 

f:id:you_otya:20190727072500p:plain

f:id:you_otya:20190727072449p:plain

 

Google Play用のアイコンを作成する

(参考)【Unity】アプリアイコンを正しく設定する

https://noracle.jp/unity-app-icon-settings/

 

画面の向きを固定する

PlayerSettingの設定を変更します。

f:id:you_otya:20190714123035p:plain



 

Canvasに入れたGameObjectの衝突判定ができない

・Colliderのサイズが異常に小さくなっているので、EditColliderで伸ばした

Canvasに入れる異常に大きい範囲のColliderになってしまったので、ScriptでColliderのサイズをオブジェクトのサイズにするようにした

 

 

http://robamemo.hatenablog.com/entry/2017/06/28/160840

 

Tilemapが透過しない

(参考)Unity2017.2.0b2のタイルマップエディターを触ってみた感想

http://www.asset-sale.net/entry/Unity2017.2.0b2

 

 

UnityにGoogleのAdmobを使う

(参考)Unityで作ったゲームにAdMob広告を実装する方法【バナー広告編】

 https://freesworder.net/unity-admob-banner/

 

 

Admobのreward広告の動画をメイン画面でロードしておく

広告表示の負荷を下げるため、TitleのSceneで広告をロードしておきます。

ただし、sceneをまたぐと、広告をロードしたGameObjectもDestroyされてしまうので、そうならないように設定します。

 

(参考)Scene切替時でもGameObject等を破棄せずに保持しておく方法

https://qiita.com/srtkmsw/items/bf6a33d6bb2987c74936

 

OnAdRewardedが期待通りに動かない

OnAdRewardedでフラグを立てて、Showを読んだ後にフラグをチェックしていました。

しかし、Showは非同期で通過したのちイベントを受け取るので、ShowのすぐあとにOnAdRewardedで建てたフラグを見ても意味がありませんでした。

Updateでポーリングするように変更します。

 

(参考)Unity)admobリワードの返りがこない

https://teratail.com/questions/189343 

 

 

敵キャラのHPや報酬を一覧管理してゲームバランスを調整したい

 

スプレッドシートを作成する

 

 

GoogleDeveloperConsoleでSpreadSheetを使えるようにする

 

http://kan-kikuchi.hatenablog.com/entry/ExcelImporter_QuickSheet 

 

QuickSheet

githubからダウンロードしたQuickSheetフォルダをそのままプロジェクトに配置すれば使えるようになる。

f:id:you_otya:20190629211134p:plain


 

作成されたファイル

f:id:you_otya:20190629215715p:plain

f:id:you_otya:20190629215646p:plain



スプレッドシートにリンクしたScriptableObjectを作成することができました。

 スプレッドシートの内容がロードされていることが分かります。

Downloadボタンを押すことでinspector画面上で更新することができました。

f:id:you_otya:20191201020058p:plain

f:id:you_otya:20191201020034p:plain

 

 

 

 

(参考)【Unity】ScriptableObjectってなんなん? って時に読む記事【解説】

https://ekulabo.com/about-scriptable-object 

 

(参考)【Unity】エクセルや Google スプレッドシートを ScriptableObject に変換して使用できる「Unity-QuickSheet」紹介

http://baba-s.hatenablog.com/entry/2019/01/11/150000

 

 

早送りや停止の実装

 

(参考)Unityでストップやスローモーション・早送りを実現するには

http://unity3dplugin.blogspot.com/2012/12/unity.html

 

 

 解像度が変わると文字が小さすぎる

f:id:you_otya:20190707150915p:plain



CanvasのCanva Scaler/UI Scale Modeを[Scale With Screen Size]に変更するとうまくいった

f:id:you_otya:20190707150952p:plain

 ↓

f:id:you_otya:20190707150523p:plain

 

まだちっさいけど・・・さっきよりはマシ

f:id:you_otya:20190707150547p:plain

 

Canvasが大きすぎて、Cameraの中に納まっていない

(参考)【Unity】Canvasの大きさをカメラの範囲内に収めるように調節する方法

https://miyagame.net/canvas-size/#Game8001280

 

Resolving Android Dependencies... がうざい

(参考)Resolving Android Dependencies... が何度も発生する問題

http://waken.hatenablog.com/entry/2018/05/31/173531

 

Saveデータを保存・読込する

JSON形式のシリアルクラスを作ると楽そうです。

androidの場合はgoogle playクラウドセーブ機能も使えそうです。

プロパティにするとシリアライズされないみたいです。少しはまりました。

× public int gold { set; get; }

〇  public int gold;

 

(参考)Unityでゲームデータのセーブ・ロードを行う方法

https://gametukurikata.com/program/savedata

 

(参考)グーグルプレイSavedGames(=クラウドセーブ)の実装と落とし穴

https://qiita.com/orangewk/items/d42c371d13db4886eed1

 

(参考)Unityでデータ保存時に気をつける事 ~iOS Data Storage Guidelines~

https://qiita.com/tempura/items/040f5cb15157fda94c84