--------(--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2013-03-30(Sat)

#pragma warning 警告を有効または無効[Unity,Swarm]

SwarmのUnity Pluginを取りあえずぶち込んでいるのですが、
Plugins/Swarm以下のスクリプトがいくつかの警告を出しています。
自分が出しちゃった警告やエラーが紛れてしまって、見づらいので、この部分の警告を無効にするように対処しました。

出ている警告を確認しながら、#pragma warning disable 警告番号 を入れていくだけ

using UnityEngine;
using System.Collections;
using System;

#pragma warning disable 0649, 0162
/**
*
* @author SwarmConnect
* The SwarmActiveUser "Proxy" class masking the Android Java code.
*
*/
public class SwarmActiveUser : MonoBehaviour {


// 無効に
#pragma warning disable warning-list

// 有効に
#pragma warning restore warning-list
warning-list : コンマで区切られた警告番号、指定しないと全部!

Swarm SDK、新しいversionが出ていましたが、とりあえず動かすために入れただけなので、
動作確認はしていないです。AndroidManifest.xmlが変わっていたなー。

続きを読む

スポンサーサイト
2013-03-28(Thu)

プリプロセッサのシンボル定義[Unity]

前回のプロジェクトでは、プリプロセッサのシンボル定義の方法が分からずに、
UNITY_EDITOR とか UNITY_ANDROID とかで、だましだましやっていました。
でも、release 用と debug用を簡単に切り替えられず、とても不便な思いをしました。
なので今回は調べました、同じ轍を踏まないように。。。

Unity4からは、プロジェクトで、プリプロセッサ定義を管理できるようになったみたいです。
変更すれば、ちゃんとビルドもし直してくれるみたいで、いい感じでいけるっぽいです。
http://anchan828.tumblr.com/post/32669868103/define

いまだにUnity3.5使っています。Unityは3.5.7f6です。Android用に出力できなくなるからです。
Unity3.5では、Assetsディレクトリ直下に以下のファイルを置いて、プリプロセッサのシンボル定義できるみたい。

-define:DEBUGのような記述で、DEBUG のシンボルが定義されます。
複数記述する場合、改行するか、-define:HOGE -define:FUGA のようにスペースで区切る。
シンボル定義というより、コンパイラオプションを記述できるみたいです。
なので、Unity4でもコンパイラオプションを指定する必要がある場合、上記のファイルは使えると思う。

editor上では、依存関係などがある訳ではないので、変更してもリコンパイルされない。
Ctrl+Bなんかで、Android用にビルドしなおした場合は、リビルドされてるみたいで問題ありませんでした。
運用間違えると、はまりそうですが、無いと無理なので、追加しました。

http://akisute.com/2012/11/unity-35.html
https://github.com/prime31/P31UnityAddOns/blob/master/Editor/GlobalDefinesWizard.cs
2013-03-25(Mon)

いまさらsingleton[Unity]

MonoBehaviourをsingletonにするのに、
毎回調べたり、書き方いろいろだったりしたので、
今回はいい加減 base class を作成して、ちゃんとしました。

色々な書き方、こいつが散らばってたよ。

public class SingletonClass : MonoBehaviour {

private static SingletonClass instance = null;

void Awake () {
if( instance != null && instance != this ){
Destroy(instance.gameObject);
return;
} else {
instance = this;
}
}
}

public class SingletonClass : MonoBehaviour {

private static SingletonClass m_instance = null;

public static SingletonClass Instance {
get {
if( m_instance == null ){
m_instance = GameObject.FindObjectOfType(typeof(SingletonClass)) as SingletonClass;
}
return m_instance;
}
}
void OnApplicationQuit() {
m_instance = null;
}
}

作ったbase class

こんな感じで使ってます。
2013-03-21(Thu)

amazon appstoreに登録

blogを全般的に見直して、細かいとことか修正しました。
ソースコード貼り付けてる所とか、変なタグが入っている箇所とか直したつもり。
後、適当なカテゴリで記事の一覧が表示できるようにJavaScript頑張りました!
Unity GameDev1 / Unity GameDev2
結構時間かかった。動作確認やdebugの方法とか分かってないな完全に。
FC2のテンプレートに関して少しの知識を得てしまった、いらねー。

そんな感じで、gamedev2は進んでない。


Wipes Arrowをamazon appstoreに登録してみました。
まだ申請しただけで、通らないかもよ。

参考にさせて頂きました。というか殆どこれです。
http://d.hatena.ne.jp/rucky19/20130111/1357901233

0.amazonアプリストア
まずは、ストアを見てみました。
Kindle Fireを一台も持っていないので、amazonのページからアプリストアのアプリを落としてきて、
愛器にインストールしました。

提供元不明のアプリのインストールを許可する、にチェック入れないといけないので、
精神的障壁などが結構高いです。
しかし有料アプリが日替わりで、無料でダウンロードできるみたいで、その分を補っている感じです。

ちょっとしが見てないけど、Google Playを見慣れているせいか、分かりづらかったような。
後、ドラッグしてスクロールしているのだけど、タップとして判定される場合が結構あって、無理でした。(release-4.55.51.0C)

1.amazon用のアカウントを別で作成して、developerに登録
普段、買い物しているアカウントとは別アカウントを作成しました。
上記のアカウントをdeveloperに登録しました。

2.アプリのamazon用の対応
大したことやってないです、以下の内容のみです

- パッケージ名変更、Google Playのものとは別のパッケージ名にしといた
- アイコン色変更、主に自分がどっちの奴か分かるように
- googleへのリンクをamazonへのリンクに変更

上記の作業するために、branch分けました、以下作業メモ
branch作成(name:amazon)
git branch amazon
git branch で確認

ブランチの切り替え
git checkout amazon

修正して、commit リモートリポジトリに反映
git commit
git push origin amazon

バージョン上げて、色々気になっている箇所を直そうかと思ったのですが、チェックとかも含めて結構時間かかってしまうので今回はやめ、とりあえずそのままのバージョンです。

3.アプリ登録
google play登録時に作成した素材やなんかで大体いけました。

新規に作ったのは、114x114のiconだけだったと思います。
スクリーンショットも、480x800がそのまま使えました。

Binary aliasがよく分からなかったですが、複数バイナリがあるわけではないので、多分そのままで大丈夫。

一通り設定して、submit app
審査待ちです。審査があるので、マーケット自体はgoogle playのような、chaosな感じにはならないのかな。
2013-03-13(Wed)

Draw Call Batching(2)[Unity]

Draw Call Batchingに関して、公式のドキュメントにはちゃんと記述されていますが、
http://docs-jp.unity3d.com/Documentation/Manual/DrawCallBatching.html
自分がちゃんと把握していなかったのでメモ。
Dynamic Batchingは思った以上に制限が厳しい。
同じobject沢山動かしたい場合なんかは、バッチが効くように対応しながらやんなきゃ駄目みたい。

みんな声高にdraw callを減らせ! materialをまとめろ! とおっしゃってるのは、
すげえ見かけるので、materialが同じなら、まとめてくれるんでしょ。ぐらいに思っていました。

Static Batching
動かなくて同じマテリアルを共有してれば、Staticフラグを立てろ。Pro専用、まじかよ。
Proでない場合は、Draw Call Minimizerなんかで頑張れってことだと思う。

Dynamic Batching
同じマテリアルを共有、頂点数で制限。shaderが使っている頂点情報でバッチが効く頂点数が変わるみたい。
頂点数の制限はわりと厳しめ。
scale(1,1,1)と(2,2,2)もバッチされない。
lightmapを持つオブジェクトもバッチされない。

20130313_drawcall.png
diffuseのsphereで、もうDynamic Batching効かない。

※その他
trail rendererもバッチが効かない。
MaterialPropertyBlockで色変えても、バッチ効いたりしない。マテリアルの複製が必要ないだけみたい。
2013-03-12(Tue)

作業環境整備

まだUnity新規プロジェクト作って、commitしただけですが、いい機会なので、
スクリプト作成とかの作業環境も見直しました。

Win7の環境ですが、MonoDevelop使ったり、emacs使ったりで適当でした。
そもそも、みんな何でやってるのだろう。。。

まずは、Visual Studio試し。
Unityの Edit > Preferences... -> External ToolsのExternal Script Editorで
簡単に切り替えられました。

20130311_preferences.png

Visual Studioだとやっぱりデバッグ出来なくて、MonoDevelop開き方が分からない。。。
UnityVSなる有料のツールで、Visual Studioでもデバッグできるみたい、
でもExpressでは動かないみたい。
そんなにVisual Studioに対して、思い入れがないのでこの時点で却下してしまいました。

MonoDevelopは、なんかVCをgitにしてるとエラーがでて、VC切ってあるような気がするんだけど、
なんだっけ?本当だっけ?

結局のところ、今まで通り、MonoDevelop使ったり、emacs使ったりにしました。

まずは、emacsを新しくする。
ここから、ビルド済みのemacs24.2頂きました。自分でビルドするとか無理なので。。。

revert-bufferすると以下のエラーが出てたので対応。
Symbol's value as variable is void: flymake-mode
.emacsで、csharp-modeのrequireの前に、(require 'flymake) を追加

igrep.elをあたらしくして、igrepの相対パスのパッチをあてた
csharp-modeとigrep、バイトコンパイルしてなかったので、やっといた。

runemacs.exeをタスクバーに入れて、emacs起動すると、アイコンが2つ出てしまうので対処。
ショートカットのAppIDをGNU.Emacsに変更するとなおるらしい。

win7appid
>Win7AppId <shortcut> [<new_app_id>]
>Win7AppId1.1.exe runemacs.lnk GNU.Emacs

タスクバーのショートカット場所
C:\Users\[user_name]\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

結局、emacs環境直しただけのような。。。
2013-03-08(Fri)

ソースコードのバージョン管理

くよくよしても仕方ないので、次に進む為にとりあえず、リポジトリを作りました。
やり始めれば、やる気も出てくるよ、きっと。
前回、一度作業したのですが、もちろん忘れているので、今回はメモります。

ソースコードホスティングは、Bitbucket使ってます。無料だからです。
金がある奴は、GitHub使えばいいと思っています。
バージョン管理はgit、お一人様なので、変更をcommitしていくだけなので、結構使えてないです。

20130312_bitbucket.png

1. BitbucketのページでCreate
Create new repository
Name:プロジェクト名入れる、今回はCongruentCube
Description:説明あれば入れる、いれてない
Access level:private repositoryなので、チェック入れる
Repository type:Git
Project management:Issueとwiki一応両方チェック、でも使ってません
Langeuage:C#
-> Create repository!

2. ローカルでprojectのディレクトリ作って、git init
cygwinでやってます。
mkdir /path/to/your/project
cd /path/to/your/project
git init
git remote add origin https://[your_id]@bitbucket.org/[your_id]/[project_name].git

3. (cygwinで)README.md作成してcommitしてpush
echo "# This is my README" >> README.md
git add README.md
git commit -m "First commit. Adding a README."
git push -u origin master

4. 後はgitの管理ディレクトリ以下でUnityのproject作ったりしてcommit! push!

Unityのプロジェクトでバージョン管理するものは、Assets, ProjectSettingsディレクトリ以下
UnityのEdit > Project Settings > Editor(Editor Settings)で、
Version Control は Meta File
Asset Serialization は Force Textにしたいけど、できなかったら、Mixed

Libraryや不要なファイルは、.gitignoreに記述
gitで使っているコマンドは以下、大体変更をcommitしていくだけ。。。
commit時は、commitすべき変更点だけにして、動作確認して全体をcommitしてる

# git管理下で、かつインデックスと比べて変更があるファイル全てをインデックスに記録
git add -A
# コミットする
git commit
git push origin master (Bitbucketにあげる時のみ)

その他、使ってるのは、
git status - 変更が加えられたファイルを表示

git checkout ファイル名 - Git でローカルの変更を元に戻す

git tag タグ名付ける
git push --tags タグをpush
2013-03-05(Tue)

READ_PHONE_STATEのpermissionを削除

Wipes Arrowアンドロイダーに出していたんですけど、そこからpermissionに関して、以下の指摘を受けました。

Swarm使用時のREAD_PHONE_STATEの権限取得については
vitrual store使用時のオプションとなっているようです。
http://swarmconnect.com/admin/docs/faq

確かに。。。
Unity用の組み込みdocumentは割とチェックしてたんだけど、
Swarm SDK自体のdocumentはちゃんと把握してなかったです、ごめんなさい。
AndroidManifest.xmlはUnity用のpackageに入っていたものをベースにしてるんだけど、そこには消すなって書いてあるんだよねー。

<!-- Do not remove the INTERNET, READ_PHONE_STATE, and ACCESS_NETWORK_STATE permissions -->

後、他のswarm組み込みアプリを調査したときに、READ_PHONE_STATE入ってて、ランキングで使ってます、みたいな説明まで載せてたりしたのを見ていたので、もう必要だと思い込んでいました。
ランキングに登録するとき、User IDやパスワード設定するのが面倒な人のために"Play as Guest"、とかっていうボタンがあるので、そこで端末に対して一意のGuest IDを振るために使っているのだなとかいう、勝手な解釈まで付けてたり。。。
※実際は同じIDが振られなかったです。

Unity用のSDKだけ必要ってはずもないので、ちゃんと動作するのを確認して、はずしました。
後、アンドロイダーが、leaderbord用のライブラリ色々あるのに、開発者用のドキュメント確認して、
個別にそれぞれpermissionを把握して、チェックしてるんだーっていうのに感心しました。
2013-03-04(Mon)

3月になった

なんとかリリースできた。完成させて、出すところまでやって、いろいろ勉強になりました。
割と周りのことばっかりやってて、ほとんどゲーム作っていない感じだったなぁ。。。
たくさんの人にプレイしてもらえるゲームは本当に幸せなんだなと思いました。
もうちょっとしたら、gamedev1通しての反省をちゃんとしよう、そして次の目標を設定しよう。

2月はGoogle playに上げる用の素材作りとかしてました。
内容はこんな感じ
・icon作った
・Screenshot取れるようにして、プロモーション用の素材作成
・Banner作った
・動画作った
・particleを減らす設定を追加
・署名付きbuild
・リリースして、バグ修正

3月は、新しくリポジトリ作成して、Wipes Arrowをメンテナンスしながら、次に進んでみようと思います。

Advertising


カテゴリ
記事一覧
最新記事
最新コメント
最新トラックバック
月別アーカイブ
プロフィール

tasogare66

Author:tasogare66
ひっそり週末プログラム
@tasogare66

【Androidアプリ】


Wipes Arrow
(スワイプアクション)

review site
Uni本
リンク
RSSリンクの表示
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。