Unity Package を作ってみた。そして思ったコトがある。

  • 20
    いいね
  • 1
    コメント

前提

OS
: OS X Mavericks
Unity
: v4.3.1f1

おさらい

そもそも UnityPackage ってなんぞ?

  • シングルバイナリなパッケージファイル
    • 中身としては .tar.gz か何かだと思われ
  • Asset Store とかで配布されている各種パッケージもこの形式
  • Unity 上で表示される Asset なら何でも突っ込める
  • 勿論、複数突っ込める
  • なんなら Asset Store から Import したヤツとかも含められる
    • ライセンスはちゃんと見ましょう。
    • 違法コピーはダメ・絶対!

んで、UnityPackage を Export するのは以下の手順

  1. Export したい Asset を選択
  2. Menu > Assets > Export Package… を選択
  3. 内容確認して Export ボタン押下
  4. ファイル名と場所決めておしまい。

簡単ですね!

んで、本題

今やってる仕事の絡みで UnityPackage を Export する必要が出てきたので、普通に上述の手順でやってみた。

まぁ、普通に構築は巧く行くんだけど、ふと 「あれ?これ、インポート先のプロジェクト的に、削除された Asset とか移動した Asset とかってどうなるんだ…?」 とか思ってみた。

んで、調べたところ、 こんなページ を見付けた。(ページ最下部に書いてある点が肝。)

結論から言うと、 「削除とか無理だから、自力で頑張ってね♥」 ってコトらしい。

いやいや、そんなこと言われても…。

複数のプロジェクトで共通のスクリプトとか Prefab とかを使い回したいので、どうにかして管理したいっす!

じゃあ、どうする?

今日ぶち当たった段階なので、具体的なソリューションは思い付いてない。

今思い付いてるのだと以下の4つあたり。

  • git の submodule とかで管理しちゃう?
  • 特定のディレクトリ配下に全部ぶち込んで、自前の UnityPackage をアップデートするときは、ディレクトリ毎削除してから、再インポート?
    • まぁ、それはそれで、一瞬大量のエラーが表示されるコトになりうるから気持ち悪いんだよなぁ…。
    • でも、NGUI とかはそういう方針なのかな?
  • そもそも削除とか移動とかせずに、Deprecated 扱いにしてコンソールに警告出す形で回避?
    • それはそれでクラス名が完全に同じケースとかはエラーになるよなぁ…。
    • まぁ、そもそもそんな定義すんなって話だが。
  • 漢は黙ってコピー&ペースト

うーむ、正直どれも微妙だ…orz

「ウチはこうしてるよ!」みたいな事例ありましたら※してもらえると泣いて喜びます!w