× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
引用
http://kan-kikuchi.hatenablog.com/entry/Delegate
delegateの短縮系
ラムダ式の記述
PR |
iOSの場合
provisioningの共有 方法1. 自分(certificateを登録している人)から、相手(certificateを登録していない人)に共有する 1.1 キーチェーンアクセスから秘密鍵を取り出す 1.1.1 キー一覧から、 iPhone Developer: your nameを選択 1.1.2 右クリックし、「(iPhone Developer: your name)を書き出す」を選択 1.1.3 p12ファイルができる 1.2 相手のUIDをプロビジョニングに登録するhttps://developer.apple.com/account/ios/certificate/ 1.3 秘密鍵(.p12)と、プロビジョニングを相手に渡す 1.4 相手をiosDevチームに登録する 1.4.1 https://developer.apple.com/account/#/overview/ から、Peopleタブを選択し、相手を招待 1.4.2 ここで、開発者アカウントが個人だと招待が不可。相手に自分と同じアカウントで入ってもらうしかなくなる 1.5 相手がXcodeでチームアカウントに入る 1.6 相手がプロビジョニングをセットし、ビルド。これで通る 1.7 課金用の作業準備 1.7.1 相手に新しいメールアカウントを用意しておいてもらう 1.7.2 sanboxテスターに登録する。iTunesの内部ユーザではない! 方法2. 相手の情報をプロビジョニングに含める(多分) 2.1 相手から、csrをもらう 2.2 プロビジョニングに、もらったcsrから作った証明書を含め、書き出す 2.3 プロビジョニングを相手に渡す。 2.4 相手をiosDevチームに登録する 2.5 相手がXcodeでチームアカウントに入る 2.6 相手がプロビジョニングをセットし、ビルド。これで通る Androidの場合 https://play.google.com/apps/publish/ 1. 相手にアクセス権限を付与 1.1 Google play developer Console →設定→ユーザアカウントと権限→新しいユーザを招待 1.2 権限は「プロダクトリーダー」。(apk登録も可能にする場合) 2. 相手にテストアカウントを付与 2.1 Google play developer Console →設定→テスターの管理→リストを選択(なければ追加)→編集→追加→保存 Firebaseの場合 1.1 Overview横の設定→権限をクリック 1.2 権限: プロジェクト→編集者 その他→Firebaseルールシステム |
Photoshopは、レイヤー名に「.png」を書いておくと、
「自動で」psdファイルと同じディレクトリにpng画像を書き出しておいてくれる。便利 だが、画像を自動でトリミングしてしまうのが難点。 カンバスサイズのまま書き出して欲しい画像も、周辺が透明だと、切り取って小さいサイズで画像出力してしまう。 これが嫌なので、自分でスクリプトを書くこともできる スプリクトの場所は以下。 /Applications/Adobe Photoshop CC 2015/Presets/Scripts ルートユーザ(sudo)でなければこのディレクトリには操作できない OSやphotoshopのバージョンが変われば移動する可能性がある ファイル拡張子はjsx。javascript。 ファイルを追加or更新したら、photoshopを再起動。 画像をリサイズしない http://qiita.com/kyubuns/items/d2831e4b0e0eff1892c7 なお、このスクリプトだと、すべてのレイヤー(.pngをつけていなくても)を書き出してしまう。また、拡張子に.pngを付け足してしまう そこで、main関数を以下のように書き換えた
また、同サイズ先頭の設定を
としておく。 |
サーバを立ち上げる
$ sudo yum update -y (-yは、たぶん途中プロンプトで聞かれるときに y (yes) で応えるっていうオプション) $ sudo yum install httpd-devel -y $ sudo service httpd start $ sudo chkconfig httpd on $ chkconfig --list httpd gitをインストール $ sudo yum update $ sudo yum install git -y sudoを使えるようにする $ sudo su - # passwd (パスワード設定) # exit これで、パスワードが設定され、suでログインできるようになる suに入る $ su - (パスワード入力) Rubyインストール 参考 必要なライブラリをインストール $ su - # yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel rbenvをインストール # git clone https://github.com/sstephenson/rbenv.git /opt/rbenv # echo 'export RBENV_ROOT="/opt/rbenv"' >> /etc/profile.d/rbenv.sh # echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile.d/rbenv.sh # echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh ruby-buildインストール # git clone https://github.com/sstephenson/ruby-build.git /opt/rbenv/plugins/ruby-build rbenv アカウント作成 # adduser rbenv # gpasswd -a ec2-user rbenv 確認 # cat /etc/passwd # cat /etc/group rbenvのパーミッション変更 # chown -R rbenv:rbenv /opt/rbenv # chmod -R 775 /opt/rbenv # ll /opt/ # rbenv install 2.3.1(最新のRubyバージョンを指定) (しばし待つ) # rbenv rehash # rbenv global 2.3.1 rbenvはsuでないと、/opt/rbenv/versions以下に書き込み権限がない ここまでsuで行う # rbenv -v -> 1.0.0 # ruby -v ->2.3.1になっていればOK なお、通常ユーザだと $ ruby -v ->2.0.0 になっている場合がある。その場合は、パスを通せば良い $ PATH=/opt/rbenv/shims:$PATH $ echo $PATH suで # which ruby をして確認すればOK railsをインストール $ gem update --system $ gem install nokogiri -- --use-system-libraries $ gem install --no-ri --no-rdoc rails $ gem install bundler $ rbenv rehash $ rails -v ->最新っぽい数字になっていればok ◯ここからrails作成手順 環境 $ ruby -v => ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] $ rails -v => Rails 5.0.0.1 $ gem -v => 2.6.7 $ rbenv -v => rbenv 1.0.0-33-gc7dcaf1 $ cd /path/to/your/directory $ rails new <アプリ名> これでディレクトリができ、アプリが生成される $ cd <アプリ名> $ rails s もしここで失敗した場合は、以下のようにする $ vi Gemfile gem 'therubyracer', platforms: :ruby のコメントを外す $ bundle install で、再度 $ rails s これでサーバが立つ $ curl http://localhost:3000/ で確認 ブラウザなら http://ec2-xxx.xxx.xxx.xxx.ap-northeast-1.compute.amazonaws.com:3000/ で表示されればok |
リジェクトされた
ドキュメント Qiitaの記事 接続するテストをする。 NAT64ネットワークを用意する必要がある。 MacをNAT64ネットワークにできるので、iPhoneでMacに接続することになる。 AirMac Stationにするということなので、macが接続する先のネットワークと、macに接続してくるネットワークと2経路持っておく必要がある。 Macからは優先LAN(Ethernet)でルータにつないでおき、WiFiはiPhoneから接続してくるようにするのが良い。 iPhone → WiFi → Mac → Ethernet → ルータ → (全世界へ) というわけでMacは、10.11以降でLANケーブルを刺せるものが良い。 オプションキーを押しながら、「共有」をクリックし、そのまま「インターネット共有」を選択。 すると、「NAT64ネットワークを作成」チェックボックスが出現する。これを確認したらオプションキーを離す 「共有する接続経路」はEthernet(LANケーブルが刺せるmacでないと選択肢にそもそもない) 「相手のコンピュータでのポート」をWiFiにする。 WiFiオプション設定でネットワーク名やセキュリティ設定ができるが、しなくても良い これでOK |
http://www.ipa.go.jp/security/awareness/vendor/programming/index.html
|
quaternion &quaternion::SeTEuler(float yaw, float pitch, float roll){
float cosY = cosf(yaw / 2.f); float sinY = sinf(yaw / 2.f); float cosP = cosf(pitch / 2.f); float sinP = sinf(pitch / 2.f); float cosR = cosf(roll / 2.f); float sinR = sinf(roll / 2.f); SetValues( cosR * sinP * cosY + sinR * cosP * sinY, cosR * cosP * sinY - sinR * sinP * cosY, sinR * cosP * cosY - cosR * sinP * sinY, cosR * cosP * cosY + sinR * sinP * sinY ); return *this; } |
GameProgrammingGems
空間内の三角形同士の衝突判定 1.一方の三角形が載っている平面の式を求める ax + by + cz + d = 0 (a,b,c)は平面の法線。(a,b,c)を求めたら、平面上の一点(x0,y0,z0)を式に代入して d を求める 2.もう一方の三角形がその平面と衝突しているか調べる 2点A(x0,y0,z0),B(x1,y1,z1)があるとき、媒介変数tを用いて a(x0*t + x1(1-t)) + b(y0*t + y1(1-t)) + c(z0*t + z1(1-t)) + d = 0 となり、これを解いて 0<= t <= 1なら衝突している 3.三角形を平面に投影する 4.三角形の頂点が、もう一方の三角形の内部にあるかどうか調べる 三角形の1辺に対して、頂点が重心と同じ側にあれば内側。これが3辺全部にあてはまれば内部にあることになる 両方の三角形について行う 一つでも当てはまる頂点があれば、衝突している |
multiAZだと、内部のデータセンターが勝手に変わったりする
すると、サーバは生きていて、nagiosもエラーを吐かないが、コネクションは切れるということが起きる IPは変わらないが、コネクションだけ繋がらなくなるので、再度同じIPで接続をしないと繋がらない ということが起きるので、死活監視は必要 |
http://unity3d.com/support/documentation/Manual/iphone-DrawCall-Batching.html
unityで負荷を減らすためにすべき3つのこと http://www.cratesmith.com/archives/183 ・Update()関数での処理を減らす ・強制的にGCする ・トライアングルは7500以下、drawcallは20以下 ・同じマテリアルを使い回す ・動かないモデルならstatic指定をする ・オーバードローや複雑なシェーダにも気を配れ ・profilerを使って調べるのがもっともよい方法 http://answers.unity3d.com/questions/14578/whats-the-best-way-to-reduce-draw-calls.html ・マテリアルもテクスチャも違うメッシュを1つにまとめることもできる テクスチャアトラス マテリアルは1つになってしまうけど、drawcallは1で済む http://www.google.co.jp/search?client=safari&rls=en&q=unity3d+drawcallを減らす&ie=UTF-8&oe=UTF-8&redir_esc=&ei=oiDFTrrZBe2amQXF_YyXCw#sclient=psy-ab&hl=ja&client=safari&rls=en&source=hp&q=unity3d+draw%E3%80%80call&pbx=1&oq=unity3d+draw%E3%80%80call&aq=f&aqi=&aql=&gs_sm=e&gs_upl=13610l13610l5l13826l1l1l0l0l0l0l192l192l0.1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=75cd20b0589e05c6&biw=1250&bih=649 メッシュをコンバインするスクリプト http://unity3d.com/support/documentation/ScriptReference/Mesh.CombineMeshes.html メッシュ生成 http://answers.unity3d.com/questions/10249/combining-meshes-with-submeshes.html http://www.unifycommunity.com/wiki/index.php?title=MeshCreationHelper 最初に見つけた、material,meshをまとめる http://forum.unity3d.com/threads/88604-One-draw-call-for-each-shader-with-dynamic-meshes-The-Bob-script.?highlight=draw+call オブジェクトごとに必ずdrawcallが1回呼ばれるという証言(マテリアルの共有に関わらず) http://unity3d.qatohost.com/questions/16098/draw-call-reduction-for-a-stream-of-bullets.html particle system1つにつき1回draw callが呼ばれる 公式の説明文 http://unity3d.com/support/documentation/Manual/iphone-DrawCall-Batching.html CombineChildrenScriptというのがある batchというUNITYの自動処理があり、これによってdrawcallの回数を節約できる batchが効くのは、同じマテリアルを使用しているオブジェクト同士 textureだけが違うマテリアルを使っている場合は、アトラス化すれば同マテリアルにできる スクリプトからsharedMaterialにアクセスする場合、Renderer.sharedMaterialを使うこと。Renderer.materialを使うとコピーしてしまう dynamic batchingもできるが、頂点数300以内のmeshに対してのみ行われる。自動で行われる CombineChildrenスクリプトについても調べておく必要がある(調べたがちょっと出てこない) static batchingもある。マテリアル共有で、一切動かないmeshに対して指定できる。Inspectorの右上、staticチェックボックスを有効にする。ただし、メモリ消費が増えるので、やらないほうがいいときもある。。。これはiOS advancedでのみ使用可 パフォーマンス関連公式 http://unity3d.com/support/documentation/Manual/Optimizing%20Graphics%20Performance.html#iPhoneOptimizingGraphicsPerformance iPhone系のテク アルファテストはアルファブレンドに変える 頂点数は40000以下に。旧世代なら10000以下 モデル…過剰なフェイスを使わない,UVマップの数をできるだけ減らす。実際に処理する頂点数は、見えている数ではなく、モデルを形作るのに必要な数。法線やUVマップなんかを複数持っている頂点は分割される。 テクスチャ圧縮…iOSネイティブのPVRT圧縮フォーマットが使われる。 マテリアル…計算を減らす、小オブジェクトをバッチしてdraw call減らす、staticオブジェクトをバッチするなどを行う。テクスチャをまとめてマテリアルを同一にする その他チェックポイント Mobile/VertexLitが最速のシェーダ。 同一シーン内のマテリアルはできるだけ統一 動かないオブジェクトはstatic指定 PVRTCフォーマットにする、16bitにする テクスチャはまとめる シェーダの型、pow,sin,conの使用を減らす、 pixel lightはひとつだけ、ライトはベイクしたほうがいい アルファテストよりアルファブレンド フォグは不要なら使わない オクルージョンカリングを生かす http://unity3d.com/support/documentation/Manual/Modeling%20Optimized%20Characters.html インポートしたモデルには、スキンメッシュレンダラーが付く。これは1モデルに1つにすべし マテリアルは1つ。複数のマテリアルを使うというのは、複数のシェーダを使いたいときに限るべし 骨は少なく。30本くらいが最高 ポリゴン数は300−1500(三角形)くらい インポート時にIKはFKにベイクされる。だからノードは不要 MeshMerger http://www.unifycommunity.com/wiki/index.php?title=MeshMerger 3.5でも行けるのでは |