■プロフィール

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

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

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

■QRコード

QR

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

■ブログ内検索

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


カテゴリー:スポンサー広告 |
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)
unityアセットサーバー
unity社がアセットサーバーのソフト配信辞めてしまったし、unityのバージョン管理は、今後はUnity Collaborateを使って行こうと思ってるのですが、過去資産もあったり、クライアントに言われたりで未だ必要なときがたまにあるのでVPSサーバーにインストールしてみました。

今後入れる事はないかもしれないけど、インストールでいくかひっかかったのでメモ
前に借りた別のVPSにアセットサーバーのインストーラーが残っていたので抽出
unity_asset_server-2.0.1.i386.rpm
unity_asset_server-2.0.1.tgz
が残っていたのでrpmを使ってみました。

OSはCentOS6.5なんですがターミナル上で

rpm -i unity_asset_server-2.0.1.i386.rpm

でコマンド入れてみる
思った通りエラーが(こういうの一発でいかないし・・・・ 全くもってめんどくさいです><)

エラーメッセージをみると、どうも
libc.so.6 が必要と怒られているもよう。

調べた結果、OSが64bit版な為、glibc(32bit)がインストールされていないのが原因って事のようです。

yum install libuuid.x86_64
yum install libuuid.i686

の2コマンド実行で、このエラーは解決したんですが、今度は新たに
libz.so.1が必要と怒られました・・・・・

これも調べて
yum install zlib.i686 libuuid.i686

で解決。
無事インストール出来ました。
アセットサーバーっていつの間にかフリー版のunityでも使えるようになってたんですね・・ 知らなかった。

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

FC2Ad

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