■Parse.Cloud.useMasterKeyを呼び出すことで特権ユーザー権限になれる
Cloud Code上でACLによるアクセス制限を無視して現在のrequest.userとは関係なしにデータを操作したいということが多々あるかと思います。そのような場合は以下のようにリクエスト処理の先頭でParse.Cloud.useMasterKeyメソッドを呼び出してください。useMasterKeyの効果は呼び出された瞬間からリクエストが終了するまで有効です。

Jan 8 11:01:25 akisute-no-iPhone sociald[6444]SLComposeViewControllerが裏で使用しているsocialdのSLDFacebookPostUploadクラスがエラーを吐いています。一見しただけだとOAuthExceptionとか書いてあって認証系のエラーかと勘違いしてしまいそうですが、実はこれSLComposeViewControllerのaddURL:メソッドに「空の」NSURLインスタンスを渡した時に発生するエラーです。以下のコードで簡単に実験することができます。: 2013-01-08 11:01:25.665|sociald|0x1fd65e70: Request status was 400 Jan 8 11:01:25 akisute-no-iPhone sociald[6444] : 2013-01-08 11:01:25.668|sociald|0x1fd65e70: SLDFacebookPostUpload: The response indicates an error Parameters: {type = immutable dict, count = 1, entries => 2 : {contents = "error"} = {type = immutable dict, count = 3, entries => 0 : {contents = "message"} = {contents = "(#100) The parameter link is required"} 1 : {contents = "type"} = {contents = "OAuthException"} 2 : {contents = "code"} = {value = +100, type = kCFNumberSInt64Type} } } . HTTP status 0

ps aux | grep unityとか叩けばなんとなくわかります。
12/1 akisutesama 12/3 tokibito 12/4 torufurukawa 12/8 shimizukawa
このrspファイルにはC#コンパイラのコンパイラオプションとして渡すオプションが記述できます。ですので http://linux.die.net/man/1/mcs などに列挙されているコンパイラオプションであればひと通りなんでも使用可能です。今回はプリプロセッサ定義をやりたいので、以下のように書けばOKです。/Assets/smcs.rsp (C#用) /Assets/gmcs.rsp (C#エディタスクリプト用) /Assets/us.rsp (UnityScript、俗にJSと呼ばれている物用) /Assets/boo.rsp (Boo用)
-define:DEBUG複数の定義が書きたい場合は、
-define:DEBUG -define:USE_DEV_SERVERのようにスペースで空けて複数記載するか、
-define:DEBUG -define:USE_DEV_SERVERのように改行して複数記載するか、
-define:DEBUG;USE_DEV_SERVERのようにセミコロンで列挙して書くことができます。注意点として、C/C++/Objective-Cのdefineマクロと違って
-define:DEBUG=1のように値を定義することはできないみたいです。あくまでシンボルを作るだけみたいですね。
@akisutesama -define:HOGE -define:FUGA みたいに書けば複数定義出来ますよ。行を分けてもOK。ただしレスポンスファイル(rsp)を修正したらスクリプトは再コンパイルされる必要があるのでスクリプトをすべて再インポートしてください
— Hiroki Omae (@pigeon6) November 9, 2012
@akisutesama 念のために書いておくと.rspファイルはヘンな黒魔法ではなく応答ファイル(response file)といって、要するにコンパイラに渡すコマンドラインオプションをファイルに書いておけるという方式です。なので中身はただのC#コンパイラオプションでございます
— Hiroki Omae (@pigeon6) November 9, 2012
はい、mcsのmanページでよいと思います。オプションに関する情報ではないですがこちらも未読なら読んでおくと良いと思います mono-project.com/CSharp_CompilerRT @akisutesama: @pigeon6 ですよね、コンパイラオプションですよね?ってことは…
— Hiroki Omae (@pigeon6) November 9, 2012
@akisutesama 応答ファイルの利用はUnity的には公式機能ではないので、あまりやりすぎないようにした方がよいです。Unityはビルド時にコードの最適化を行ったり、特にiOSではAOTをやったりと結構事後処理を頑張っているので、そこでおかしくなる可能性はあります。
— Hiroki Omae (@pigeon6) November 9, 2012
AssetDatabase.Refresh();
reimportSomethingToForceRecompile();
private void reimportSomethingToForceRecompile()
{
var dataPathDir = new DirectoryInfo( Application.dataPath );
var dataPathUri = new System.Uri( Application.dataPath );
foreach( var file in dataPathDir.GetFiles( "GlobalDefinesWizard.cs", SearchOption.AllDirectories ) )
{
var relativeUri = dataPathUri.MakeRelativeUri( new System.Uri( file.FullName ) );
var relativePath = System.Uri.UnescapeDataString( relativeUri.ToString() );
AssetDatabase.ImportAsset( relativePath, ImportAssetOptions.ForceUpdate );
}
}これでC#で書かれたコードに対しては無事にrspファイルへの変更が反映されるようになります。00000000-0000-0000-0000-000000000000を返してしまうらしいのです!iOS 6.0.1では修正されているらしいです。00000000-0000-0000-0000-000000000000でないか文字列比較する方法がよさそうです。sudo gem install xcodeprojあとは上記のPostprocessBuildPlayerをUnityプロジェクトの /Assets/Editor 以下に配置して、コード中のフレームワーク名を指定している箇所をご自身のお好きなように変更してやればオッケーです。
@pigeon6 こないだのUnityで回転で吹っ飛ぶ理由がわかりました! Game Centerみたいっす。 developer.coronalabs.com/forum/2012/09/…
— akisute (@akisutesama) September 24, 2012
@akisutesama ありがとうございます。supportedInterfaceOrientationsForWindow/shouldAutorotate のまわりの対応ということなら対応中です。3.5.6で直すつもりみたい。
— Hiroki Omae (@pigeon6) September 25, 2012
UIViewController shouldAutorotateToInterfaceOrientation:が完全に廃止になっており、基本的には全く呼び出されないようになってしまっています。その代わりにより体型だった画面回転の仕組みが導入されています。iOS 6からの画面回転は、「アプリが対応する画面方向」と「各View Controllerが対応する画面方向」の2つによって画面の回転する方向が決定されるという仕組みになっています。
以下優先順位順に、 1. UIApplicationDelegate application:supportedInterfaceOrientationsForWindow: が返す向き。iOS 6以降のみ。 2. UIApplication supportedInterfaceOrientationsForWindow: が返す向き。iOS 6以降のみ。 3. Info.plist で指定されている UIInterfaceOrientation の向き。各View Controllerが対応する画面方向は以下のように決定されます。
各ViewControllerが supportedInterfaceOrientations を実装しているなら、それが返す向き。 していないならば、 iPhoneだと UIInterfaceOrientationMaskAllButUpsideDown iPadだと UIInterfaceOrientationMaskAllこの2つの積集合をとって、両方が一致した向きに画面回転が行われる仕組みになっています。
[[NSBundle mainBundle] pathForResource:@"MyMusic" forType:@"mp3"];みたいなコードを書いたことがあると思います。このBundleの仕組みを使うと、
/Assets/Plugins/iOS以下にBundleを配置しても正しくBundleが認識されませんし、iOSのアプリにインストールされません。/Assets/Plugins/iOS/以下ではなくて、/Assets/StreamingAssets/以下にBundleを配置するようにしましょう。実は/Assets/StreamingAssets/以下のパスには隠し要素があって、このパス以下のファイル・ディレクトリは全てアプリケーション自身の/Data/Raw/ディレクトリに配置されるようになっています。NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"MyBundle" ofType:@"bundle" inDirectory:@"Data/Raw"]];これでUnityプラグインを多言語化したり画像リソースを使ったりするのが楽になると思います。
/Assets/Plugins/iOS/以下においたBundleも扱えるようにしてくれると楽なんですが・・・Unity 3.5の地点ではどうもダメっぽいです。
lldbコマンドで LLDB の対話環境を起動した後、process attach --name MyApp --waitforでMyApp.appという名前のプロセスが立ち上がるのを監視します。

breakpoint -f MyTestModel.m -l 123とかやって適当にブレークポイントを設置した後、
thread continueで続きを実行開始します。
