■プロフィール

クリエイトウェーブスタッフ

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

■最近の記事
■カテゴリー
■twitter

■QRコード

QR

■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブロとも申請フォーム
■twitter_follow

■ブログ内検索

■RSSフィード
■リンク
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


カテゴリー:スポンサー広告 |
Firebaseのストレージ(Google Cloud Storage)からAssetBundleを読む
AssetBundleの読み込みWWW.LoadFromCacheOrDownloadを使っていたのですが、FireBaseのストレージから読み込もうとすると、
WWW.LoadFromCacheOrDownloadの場合は、Google Cloud Storageのファイルの権限を全公開にする必要があるらしい・・・・

AssetBundleだけ使うなら、全公開でもいいのかな?と思いつつも、出来ればユーザー認証必要の設定で読みたいところ・・・
なんか方法はないものかと思ったらあったのでメモ


まずバイト配列でファイルを読み込み、その後「AssetBundle.LoadFromMemoryAsync」でAssetBundleとして生成します。
ちゃんと使えたので一安心。

それにしてもFireBase公式だと
Firebase.Storage.StorageReference gs_reference = storage.GetReferenceFromUrl("gs://bucket/images/stars.jpg");
とか例のってるんですが、このままだとstorageに参照が入ってないからエラーだし
reference.GetBytesAsync(maxAllowedSize).ContinueWith((Task task) => {
の Task でエラーになります。

よく判らない・・・ 例は、わかりやすいようにしてほしい・・
----------------------------------------------
GetBytesAsync() メソッドを使用すると、メモリ内のバイトバッファにファイルをダウンロードできます。このメソッドは、ファイルの内容全体をメモリに読み込みます。アプリで使用できるメモリよりも大きなファイルをリクエストすると、アプリがクラッシュします。メモリの問題が発生しないように、アプリで処理できる範囲内で最大サイズを設定するか、別のダウンロード方法を使用してください。
----------------------------------------------
とあるので実運用は、ここを気をつけた方がいいかもしれないです。

スポンサーサイト
カテゴリー:Unity | TM(0) | CM(0)
UnityにaddEventListener等のEventListenerを実装してみる
Unityはビヘイビア貼り付けて、そこで変数設定したり、SendMessageあったりとFlashよりはDirectorに近い構造だったりします。

addEventListenerとかでイベント受け取る手法は、ActionScript3とかと比べるとあまり使わない手法だし、そこまで魅力的な手法ではないかもしれないと思われますが、
クリエイトウェーブの場合は、Flash時代から複数人のプログラマーが担当部分のプログラムを作って、親のコントロール部分のプログラムが統括連携していく事が多いので、出来るだけ担当プログラム以外のオブジェクトとかには干渉したくないところ・・・・

担当部分だけで完結するように出来るだけ閉じてモジュール連携を行う・・・ なるべくカプセル化したい訳です。
こうする事によって、複数人でも連携しやすくなるし、忘れた頃プログラムみてもソースを追いやすくなります。

こうなってくると、CallBackやらEventListenerの仕組みが必要になってくるんですが、まあどこまで依存するかによります。

ということでEventListenerの仕組みを実装してみました。

まずは
ListenerEvent.cs
EventDispatcher.cs
の2ファイルを準備します。



RemoveEventListeneとEventDispatchrは、Listの後ろの順番からとるのがコツ。


さてうまく動くか実験です・・・
適当なgameObjectを作って、「EventTest」と名前を変えます。

下記のCSファイルを「EventTest」ゲームオブジェクトに貼り付けましょう。
CSの名前は任意ですが、とりあえず同じ「「EventTest」.cs」にしておきます。


継承は「MonoBehaviour」ではなく、「EventDispatcher」を継承します。
「EventDispatcher」のほうに「MonoBehaviour」が継承してあります。

5秒後に EventDispatch("event_complete"); で "event_complete"イベントを発生させます。

後は、MainCameraなり別のGameObjectに下記の「Controller.cs」を貼り付けます。


問題なくイベントを受け取る事が確認出来ました。
今回は、イベント発生だけをやりましたが、引数にEventオブジェクトなりを渡すようにしてやれば、ActionScript3で行っていた処理とほぼ同じ事が出来るようになります。

カテゴリー:Unity | TM(0) | CM(0)
SWFをテクスチャーアトラスへ変換
SWFをテクスチャーアトラスへ変換するツール作ってみました。
SWFをテクスチャーアトラスへ

AnimateCCは既にムービークリップをテクスチャーアトラスとJson形式にしてUnityに持っていけるようになってるので
(ボーンアニメも作れるので要はSpineみたいに使えるってことですよね・・・・)
通常は、こちらのほうが有効な場合も多いと思われます。

対して作ったツールは、はあくまで単純にSprite(Multiple)にしたい時に使うものです。
SWFをテクスチャーアトラス化するので、ActionScriptとか使ってるアニメもテクスチャーアトラスになるのが違うところでしょうか。

Unityは、フリーのAnima2D(もうすぐ最初から同梱らしい)もあるし、Spineもあるので、そっち使う人も多いと思うのですが
AnimateCC(前のFlashProですね)愛用の方は未だ未だ多いと思うところ・・・

ムービークリップをテクスチャーアトラスとJson形式でもっていけるので、AnimateCCで間に合う場合も、ひょっとしたら多いのかもしれないです。
AnimateCCをUnityにもっていく方法はAdobeの「モバイルアプリおよびゲームエンジン用アニメーションの書き出し」というページに手法が載っています。

カテゴリー:Unity | TM(0) | CM(0)
Unity2017でAssetServer項目消滅
最近はCollaborate使うようになってきたので、AssetServer使ってなかったんですが、過去資産のコード参考にみたくてAssetServerから久々に過去のプロジェクト呼び出そうとしたら・・・・・

Editメニューから、Project Settings呼び出してEditorで、Version Controllメニューへ・・・
あれれれ。。。AssetServerの項目が無いぞ!!

サーバーソフトの配布は、1月で既に終わってましたが、ついにUnityのクライアントソフトの方もなくなってしまったのか!!
便利だったのになぁ・・・・ Collaborateより安心感があったのでちょっとショック。

今後はCollaborate使うとして、Unity5.6系もしばらく入れておかねば・・
まぁ、そうはいってもブランチ使うプロジェクトになると、どのみちGitになってしまうのですが。
Collaborateも早く、ブランチに対応してほしい。

Switchが今現在はUnity5.6なのもあり、しばらくUnity2017とUnity5.6共存です。

カテゴリー:Unity | TM(0) | CM(0)
Unityのアンドロイド書き出し
最近は相も変わらずUnityの仕事ばっかりなんですが、スマフォではなくSwitchが多くなってます。
メインはSwitch案件が多いのですが、そんな中でお手伝いしてるスマフォ案件でアンドロイド書き出し実験が必要に・・・

そういえば、最近やってなかったなあと思いつつ未だUnity書き出し環境作ってなかった別マシンに久々に構築・・・

まずAndroidSDK入れて・・・あれ、公式ページでAndroidSDKのGUIインストーラがなくなってるぞ・・・

調べてみるとどうもGUIインストーラーはなくなってしまったようです。
Android StudioのインストーラーつかってSDKだけ入れる事も出来るみたいなんですが、まあ入れておいても損はないだろうと思って、AndroidStudio毎インストール!!

次にJDK入れなければと思ったのですfが最新はJDK9のようです。
JDK入れて・・・準備OK!!  ビルド開始とやったんですが、あれれれれ?

ビルドエラーが起きる。
まあ、こういうのはいつも直ぐうまくいかないんですが><・・・・困ったものです。
宿命ですが、まったくもってメンドくさいですw

いったいなにが悪いんだと思ったら、AndroidSDKもJDKもどっちも駄目でした。
Android Studio(2017年10月現在)で入れたAndroidSDKは、以前のと仕様が変わっていてUnityではエラーになってしまうんだそうです。
解決方は

●Windows
http://dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip

●Mac
http://dl-ssl.google.com/android/repository/tools_r25.2.5-mac.zip

からAndroidSDKのtolls部分をダウンロードします。
解答したToolsフォルダをAndroid SDKのToolsフォルダと入れ替えればUnityが受け付けるようになります。
Unityのパッチバージョンとかで直ってるのもあるそうなので、やってみて確認ですね・・・

次にJDK
なんとUnityではJDK9はだめだそうです。JDK8までとちがってなんか必要なファイル群がなくなってる模様・・
JDK8をダウンロードしなおして、構築しなおします・・・

これで無事androidビルドする事が出来るようになりました。。
Unityのバージョンアップ等で、このあたりの問題も解決されていくとは思いますが、なるべくこういう問題にぶち当たるのは避けたいところです。

カテゴリー:Unity | TM(0) | CM(1)
次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。