環境: Unity2017.4.1f1 Google Mobile Ads Unity Plugin v3.13.1空のプロジェクトにGoogleMobileAdsを入れてみたら、Androidでビルド時に下記のエラーがでた。
何となく、パススルーカメラを作りたくなり、WebCamTextureを試す。 展望としては顔認識やARと組み合わせて、ARカメラ的な感じのものを作りたいな、と。 しかし意外とつまづいたのが、端末の回転とテクスチャの向きが合わない問題。 いまいち理屈を理解しき…
iOS10からカメラとマイクのプライバシー設定についてinfo.plistに記述が必要らしい。 <key>NSCameraUsageDescription</key> <string>niconicoSDK Dependency</string> <key>NSMicrophoneUsageDescription</key> <string>niconicoSDK Dependency</string> niconicoSDKのドキュメントを見ると値は空でも良いっぽいような…
ゲーム中でちょっとした「Game Over」みたいなボイス素材が欲しくなることがある。 そんな時に便利なのがsayコマンド。qiita.com10カウントとか「Excellent」とか「Perfect」とか作っておくと、パッと使いたい時に便利かも。 say excellent -v Victoria -o e…
2016年中にリリースするつもりで作っていたゲームを、ようやく年明けにリリースした。iOS版 https://goo.gl/JjN2Uk Android版 https://goo.gl/oAo1Nfゲーム本編ができてからが結構長かったな。 ランキング実装やらIAP実装やら、こまごました作業は別にそんな…
下記で紹介されているtsubaki/HyphenationJpn_uGUI使用時のメモ。 tsubakit1.hateblo.jp 基本的には紹介された使い方でいけるが、一部実行時に動的セットしたかったので強引に下記のようなメソッドを追加した。 public void Set(string str) { text = str; }…
これまでハイスコアのシェアとかにSocialConnector使ってたけど、直接Tweeterのツイートウィンドウとか出したいな、と思いSocialWorkerを導入してみた。 okamura0510.jp まだiOS向けビルドしか試してないけど、下記のフレームワークを追加しないとビルドでき…
数値をカウントアップしながらプレゼンテーションする、というのはよくある。 条件として下記の通り。 ・一定時間ごとに特定の値ずつ増える。 ・最大でもn秒でカウントアップ処理が終わってほしい。 ・カウントアップする最小値を指定したい。 ・カウントア…
あるタイミングで発火するstreamAとstreamBがあり、streamAが発火したタイミングでstreamBの最後の値を流したい。 しかしstreamBが発火しても値は流れてこない。 というようなことをやりたいのだが、後者の条件が厄介でZipLatestでもないしCombineLatestでも…
2つのコルーチンの処理完了待ち合わせをUniRxを使って書いてみたものコルーチンをIObservableにして、zipして待ち合わせして、それをStartAsCoroutine()でyield returnできるようにしている。 回りくどいことやってるような気もしなくもないが、スコープの…
断続的に値が流れてくるストリームがあり、一定時間以内に値が来たら処理するが、一定時間以上値が流れて来なかったら終了する、という処理をしたいと思った。 例えばスコアを獲得する毎に値が流れてくるストリームがあるとして、これ自体は明確な終了がない…
例えば var ids = new int { 1, 2, 3}; みたいな内容を 1, 2, 3 とログ出力したいことがちょくちょくある。 PHPだと implode(',', ids); でいけるんだが、C#でスラっと書けんかな、と思ってLINQで表現。。 ids.Select(x => x.ToString()).Aggregate((x, y) =…
以前にもフリック検出するストリームを書きたいと思って取り組んだことがあったが、その際のやつはどうにも綺麗にまとまらなかった。 Downされてから一定時間以内にUpしないものは検出しない、という条件を落としこむのに苦戦したんだったかな。 ふと思い立…
Unity5.3.5f1 + PUN v1.69で確認。 既存ルームにJoinした際に、OnJoinedRoom()よりも先に既にルームにいるプレイヤーのOnPhotonPlayerPropertiesChanged(object)が呼ばれているっぽい? 既にルームいるプレイヤーがSetCustomProperties()を呼んでいるかどう…
PhotonUnityNetworkingを使っていて、OnPhotonJoinRoomFailed(object[] log) が呼ばれず、OnPhotonJoinRoomFailed()が呼ばれるという現象に遭遇し、色々と調査していたらどうもSendMessageの不思議な挙動が原因のようだ。 ちなみにUnity5.3.5f1での確認。 追…
Unity5.2.3f1使ってて、iOS向けビルドしたものをiTunesConnectへアップしようとしたら警告が出た。 iPadPro用の167x167のAppIconが設定されてない、とのこと。 確かにUnity側のアイコン設定に、そのサイズのものがない。 まぁいずれ対応してくれるんだろうけ…
どうにもAndroidManifest.xml周りで、よく分かっていないがためにビルドエラーにハマる。 とりあえずさっき、下記の方法で一つの問題は解決したのでメモ。 stackoverflow.com Assets/Plugins/Android/res/values/version.xml を置くって話なんぞ知らんがな。…
XCode7にしてバイナリをiTunesConnectにアップロードしようとした際に、幾つかトラブルがあったのでどう対応したかメモを残す。 と言っても、解決した情報へのリンクだけど。
どうやらUnity5から、5.2.1時点でもまだ解決されていないバグらしい。hwks.hatenadiary.jp とりあえず下記に従ってネイティブプラグインで解決するか。qiita.com ところで、アプリバージョンアップタイミングから達成項目を追加する場合のテスト方法が分から…
ちゃんと計測してないんだけど、毎フレームあちこちでログ出力してるとかなりフレーム落ちる。 書き換えて周るのも面倒だなーと色々調べてたら、Debugクラスをグローバルスコープで定義して、単にDebugと書いている場合にUnityEngine.Debugではなく、自分の…
ステージ毎にシーンを分けて作っていて、そのシーンを Application.LoadLevel("Stage" + n); って感じで読み込んでいる。 何らかのミスでそのシーンが存在しない場合はエラーになるが、調べた感じだとうまいエラーハンドリングが見当たらない。 Exceptionをc…
http://jfxr.frozenfractal.com/# マシンによってはちょっと重いけど、これはなかなか使い勝手が良い。
あるタイミングで発火するstreamがあるとして、 stream.Select(_ => 1) .Scan((a, b) => a + b) .Subscribe(x => Debug.Log(x)); とすると発火した回数を取れる。
敵がスプライトアニメーションしていて、やられると点滅する。ということを実装しようとした。 スクリプトからSpriteRendererのenabledをいじることで実現できるはずだったのだが、何故かenabledがfalseにならない。 一時停止して直接Inspectorからenabled=f…
ちょっとハマったのでメモ。 Javaのprotectedと違って、C#のは同一クラスの別インスタンスからアクセスできないみたい。 そういう場合にinternalを使う。 「アクセスは現在のアセンブリに制限されます。」って説明がイミフだったけど、そういうことか。 clas…
最近試しにDOTween使ってみたけど、iTweenの方が使いやすいような気がした。 でもこれ見たらLeanTween良さそうだな。 次はこれ使ってみるか。 LeanTween Speed Comparison to iTween | Dented Pixel
ゲーム実行前にあらかじめシーン上にPrefabを並べておきたいことがあって、数が多いし後で変えたくなるから何とかできんかなぁ、とEditor拡張をやってみた。 個数指定してボタンを押すとGameObjectを生成する、みたいな。 触ってみるとなかなかEditor拡張は…
Inspectorで、AnimatorのApplyRootMotionがfalseになっていると反映されない。 OnAnimatorMove()を実装していると、この部分がHandled By Scriptと表示される。 自分の場合だとObservableMonoBehaviourを継承しているコンポーネントがあったので、そのために…
Coroutine使う場合は yield return new WaitForSeconds(n); とするような処理を、UniRx使う場合はこんな感じになる。 observable.SkipUntil(Observable.Timer(TimeSpan.FromSeconds(n)) よく使いそうなパターンは、ひと通り書いてみて覚えるのが手っ取り早い…
C#はこんなことできるのか。 これは良いなぁ、順序じゃなくて名前で指定できる方が、明確で分かりやすい気がする。 名前付き引数と省略可能な引数 (C# プログラミング ガイド)