UnityでExport Packageするとサイズの小さいパッケージが出来てしまう件
Unity 5.6.3で確認中ですが、Unityのプロジェクトを誰かに渡す時にUnityPackageで渡そうとして
Export UnityPackage
すると、全てのアセットが選べず差分しか表示されずに、困り果てた末にUnityを立ち上げなおしたりするんですが、それでも状況は改善されません。
気付かずに「はい、パッケージだよ!」とアセットが欠落したパッケージを渡してしまった後に気付いたらちょっとチーム内でギスギスしそうです。(最初からバージョン管理ツール使ったらいいという噂ですが...)
で、またパッケージ化しようとしてもなかなか上手くいかなくて悩んでしまうコトになります。
悩み過ぎてハゲそうになります。
この場合は一度
Select Dependencies
をしてやると、その後プロジェクト全体がうまくPackage化出来るようです。
もっとも最初Export PackageをしてもPackage化されるファイルがNoneとなってたらしばらく待たないといけないというトリックがありますが...。
=================================
=================================
Unityで作ったゲーム「ひつじさん、かぞえてゲットン!」です。
uphydnリリースゲーム第一弾!
このブログを始めて1年半ですが、とうとうunityでスマホゲーム(アプリ?)をリリース出来ました!
色々とゲームは作ってたんですが、納得いくものが出来ずに思いつきで(構想は15年前からあったんですが...)ゲームの企画が頭に浮かんだんで1ヶ月まるまる昼夜問わずに作り込みました。
最初は2週間くらいでリリース出来るボリュームかなと見積もってたんですが、色々と欲が出て仕様が膨らんで4週間とちょっと掛かってしまいました。
しかしながら自分の中では納得のいく出来かな?とは思ってます。
まだ完成形の途中でバージョンアップするコトで対応、という感じでリリースしました。
「ひつじさん、かぞえてゲットン!」
というゲームです。
画面上に現れるひつじを声に出して数えてくれるというアプリです。
この声の合成は無料のツール「UTAU」を使用しています。
(作者様、ありがとうございました!)
ただ単純にこれだけだと面白くないんで、ひつじの種類を増やして、コレクション要素を加えました。
それだけでもちょっとインパクトがないんで、今度は捕まえられたら面白いかな?というコトでひつじだまを投げて捕まえられるように拡張しました。
そうなると次に捕まえたひつじをコレクションするだけだとやはり物足りないんで、その捕まえたひつじを出現させられるように追加しました。
まあ、簡単に言うとこんな感じなんですが...
詳しくはコチラ。
unityでandroid用にビルドするとどうしてもiOSよりはスピードが遅くなってしまうので、画面の解像度とかレンダリングのクオリティを落としてスピードを上げて普通に遊べるようには仕上げました。(ココ、結構しんどかったところです...)
またこの辺りはおいおいこのブログに書いていこうかなと思います。
あと、特徴としてはanima2Dというアセットを使用して2Dのアニメーションを動かしています。
最初、このゲームを作ろうというきっかけになったのがこのアセットで、違うゲームでこのanima2Dを使うために評価用としてひつじさんのキャラを作って動かしたら
「お、案外イケるんじゃね?」
というコトでその日から開発が始まりました。(( ´∀` )
このanima2Dを使うまでは自力で2DアニメーションさせるかLive2Dを使うか悩んでたんですが... 使って良かったです!
(ちょっとだけ使用感にクセがあるんですがね... またおいおい)
あと、必須なアセットとしてはTween系のプラグインであるiTweenも今回初めて使ったんですが、もう止められなくなりました!
(これも少しだけクセがありますが無理やり回避して使ってます)
このゲームの開発にあたって感じたコトは、何でも自力でやろうとしたら出来ないコトはないんですが、そこに開発コストをかけてどうすんねん!というコトを再確認しました。
そこに尽きると思います。
何かやるときには色々と調べて便利なツールを使って、オリジナリティのある部分に開発コストをかけないといけないなぁ、と思った次第です。
というわけで、良かったら「ひつじさん、かぞえてゲットン!」試してみてください。
Unityのゲームオブジェクトとコンポーネントの関係
久々の更新ですが、もはやUnityは半年以上さわっていません。
ちょっといろいろとやるコトがあったもので... 汗
以下備忘録です。
ゲームオブジェクト
ゲームオブジェクトは基本的には見える物体である。
親子関係を築くコトが出来る。
親のゲームオブジェクトを動かすと子供のゲームオブジェクトも動く。
MonoBehaviourクラスから派生したクラスはコンポーネントとしてゲームオブジェクトにアタッチ可能。
ユーザーが書いたクラスはスクリプトコンポーネントとしてゲームオブジェクトにアタッチ可能。
ゲームオブジェクトにアタッチしたスクリプトコンポーネントに書いてあるクラスのメソッドのアクセス方法
ゲームオブジェクトのインスタンスAを持っている場合
A.GetComponent<クラス名>().method();
ゲームオブジェクトのインスタンスを持ってない場合
Find("ゲームオブジェクト名").GetComponent<クラス名>().method();
旧Animation (レガシーアニメーション)
Unity5.6以上で試しています。
レガシーなアニメーションではAnimationコンポーネントで再生するとSpriteのイメージが切り替わりません。
例えばこんなの
他のプロパティは変化するのにイメージが切り替わらない時はAnimatorのコンポーネントを追加するとアニメーションでスプライトのイメージが切り替わるようになります。
Animatorコンポーネントを追加した時に元々のアニメーションクリップを再利用したいのですが、やり方が分かりません。(既存のアニメーションクリップの読み込ませ方が分からない)
再びアニメーションクリップを作製するか、既存のアニメーションウィンドウでタイムラインをCTRL-Aなんかで全選択ー>CTRL-Cでコピーして新しいアニメーションクリップに貼り付ける、のは出来るかと思います。
このAnimatorとAnimationのツールがイマイチ使い方が難しいというか。
- 追記
レガシーアニメーションで、デバッグモードでモード(レガシーとかそうでないとか)設定を変更するとレガシーアニメーションでもスプライトの切り替えが出来るようになりました。
UnityのUIレイヤー順位。
UnityのUIレイヤーの優先度(重なり方の優先度)はCanvasのChildのGameObjectの順番で決まるようです。
上の例だと
InformationTextが一番下、GameObject2が一番上に表示されます。
Unityでチーム内で管理するファイル
違うパソコンに環境を移動する場合やGitなどでファイルを管理する場合は上図の網掛けしているファイルのみを移動・管理します。
プロジェクトファイル
ProjectSetting
Asset (この中に全ての必要なファイルが入っていると仮定)
Visual Studioのソリューション
移動後に全再コンパイルします。