Unityで固定FPS
Unity備忘録、STG制作2:フレームレートの調整 - Qiita フレームレートを落として電池消費を抑える - テラシュールブログ
ゲームマネージャ的存在で
void Start () { QualitySettings.vSyncCount = 0; // vsyncをOFFにする Application.targetFrameRate = 5; // FPSを5に設定 }
UnityでTime.deltaTimeを使った速度感
10*Time.deltaTime
ってよくやるけど、コレは時速でいうとどれくらいなのか
Time.deltaTime を使用した FPS を意識した物体の操作
function update() { transform.Rotate(0, 60 * Time.deltaTime, 0); // これで一秒で60度動くようになりました。 }
要は秒速いくつ、みたいな記法になるみたい
早苗さんゲーの学び
バリアエフェクト
エフェクトにパーティクルシステムとポリゴンを交えると、Colorのα制御だけでは対応するのが難しくなるので、 エフェクトスタート、エフェクト終了はアニメーションで制御したほうが応用が利くっぽい effect_start, effect_enabled, effect_disabled, effect_end 4つを用意する
ただし、フェード使った演出はやりたいので、専用のシェーダを何か作った方が良いかもしれない・・・
弾幕ロジック制御に使う弾に、寿命を持たせる場合に、経過秒も管理できるようになってると良い
残りの寿命で振る舞いを変える事ができるので、弾の消失演出ができる。
// 経過秒を使った寿命管理 public float lifespan; public float age; public virtual void Start () { Destroy(this.gameObject, lifeTime); } public void LateUpdate() { this.flameTime += Time.deltaTime; }
GoogleFirebaseメモ
Googleのサーバーレスアーキテクチャ 基本的にAjaxでAPIを叩いて、いろいろやってもらう感じ
Hosting
静的資産のホスティング、サーバーが必要そうなもの(DBアクセスとか)は全部サーバーレスで良いから、HTMLとJSとCSSだけ配信すれば良いよねって意識を感じる
RealtimeDatabase
AjaxでアクセスできるRedis
Authentication
Googleに認証周りを委譲する。 認証方式(プロバイダ)は
(サーバーを用意しての)自前で認証機構を用意して、ログインされたことをFirebaseに伝えることもできる。
見栄え周りは、HTMLにフック用divを用意しておいて、そのセレクタをAPIに渡すと、ログイン画面に書き換えてくれる。 ログインの成否は、APIからのコールバックを受けるやり口と、ログイン成功時の遷移先を予めAPIに伝えておく事ができる。
VSCode Extension
editor
vscode-icons
ファイルリストにアイコンを表示する
Bookmarks
エディタにブックマーク機能を付与
ブックマークは Win: Ctrl+Alt+K Mac: Command+Option+K
Ctrl+P > bookmark hogehoge でブックマークした物に対するコマンド
Google Search
エディタからGoogle検索。検索結果だけならVSCodeの中で開く
Bracket Pair Colorizer
対応するかっこを色分け
Git
Git History (git log)
Gitの履歴をVsCodeから確認
よく使うのはgit view file history
でファイルの履歴を確認する
GitLens
sourcetreeとだいだい同じことが出来るようになる
Git Project Manager
Gitプロジェクトのフォルダ開くのが楽になる Mac: Option+Command+N
markdown
Paste URL
マークダウンでURLを貼り付けた時に、ページタイトルを取ってくる Win: Ctrl+Alt+P Mac: ^+Option+P
Markdown Preview Enhanced
マークダウンのプレビューをいい感じにする Ctrl+K -> V
markdownlint
マークダウンのLint
Language Supports
Ruby/Rails
endwise
自動でendを書いてくれる
Ruby Symbols
メソッド一覧表示機能をRubyでも使えるようにする Win: Ctrl+SHIFT+O Mac: Command+SHIF+O
solargraph
rubyのインテリセンス
事前にVSCodeと同じ実行環境でgem install solargraph
をする必要がある。
solargraphのインストールミス
brew docter で警告が出るようなら対象のヘッダファイルを消す必要がある。
solargraphでrubyのintelisenceを効かせようとしたらsolargraphのgem installができない ログ見るとopensslが無い -> gem install opensslしたらビルドできない brew側で brew install opensslしてもビルドできない opensslはどうもeventengineが要求しているようなので、単体インストールを試すもダメ ビルド環境が悪いと睨む rbenv経由で、使っているruby2.5.0を再インストール、したらビルドできない。(usign64_t型が無い言われれる) rbenvのアップグレードを試すもビルドできない。 llvmを入れろと指示があったので試したら成功 rbenvのアップデートを実施 2.5.0を再インストールするも、longlong型が無い言われる。 macのgccを新しそうなやつに差し替え、てもだめ brew doctor で警告が出まくっている その中に /usr/local/include/stdbool.h /usr/local/include/stdint.h 辺りが混じっているので、消し込んでいく できた・・・ C言語のバージョンアップで追加されたかた情報が、古いヘッダファイルで取り消されていた模様。
Rails
Rails向けのナビゲーションなど 同一Modelに関するファイルの一覧(UserModel表示中にUsersControllerの検索など) Win: Alt + . Mac: Opt + .
Others
codic
エディタ内でcodicを使ったメソッド名作成(和英)
Excel Viewer
CSVファイルを表形式で見れる
VSNotes
VSCodeにメモ用の固定ワークスペースを登録できる感じ。 Grepできないのが残念。Git連携っぽい設定があるが・・・?
rubotyを使ったdiscordbot作り
discordデベロッパポータルでアプリの登録
rubotyの作成
r7kamura/ruboty
ykzts/ruboty-discord
基本的にはgemの宣言と環境変数への代入だけ
開発環境用にdotenv
入れるのも良い
ボットの起動はbundle exec ruboty
またはbundle exec ruboty --dotenv
作成した資産はgithubにPushしておく
herokuへのデプロイ
herokuで自動的にスリープしないようにProcfileを作成する。 HerokuのProcfileの役割 - あかんわ ワーカープロセスとして立ち上げておくので、記述内容はこれ
worker: bundle exec ruboty
heroku上でアプリを一つ用意して、上記で作成したgithubリポジトリと連携させておく(Deploy -> Deployment method) また、合わせて環境変数を用意しておく(Settings -> Config Vars)
独自拡張用rubotyプラグインの作成
Ruboty の Plugin のつくりかた #ruboty - Qiita
上述のruboty本体とは別リポジトリで作成する。
作成したgemをrubotyで読み込ませて利用する。
アップデートした場合は、ruboty側でbundle update
すると、Gemfile.lockが更新されるので再度Pushする。
CKEditor
テキストエディタの共同編集機能はどのように実装されているのか
WYSIWYGエディタについて、CAP定理のうちA+Pを取る時のノウハウだそうな。 CKEditorのサービスを使えば、GoogleDocみたいな共同編集機能を実装できるそうな。 Overview - CKEditor 5 Documentation
CAP定理
CAP定理 - Wikipedia CRDT (Conflict-free Replicated Data Type)を15分で説明してみる - Qiita
分散システム(プロセス同士がネットワークを介して協調するというシステム)において
- Partition Tolerance: ネットワークが故障しても
- Consistency: データの整合性をもって
- Availability: 読み書きが常にできる
というウマイ話は、どうやっても無理という定理
具体例
- C+A:ネットワークが故障しない限り、整合性をもって読み書きができるシステム 一般的な関係データベース、LDAP、NFS など
- A+P:ネットワークが故障しても、読み書きができる Amazon SimpleDB や Apache Cassandra - Wikipedia(NoSQL系) 、DNS や HTTP キャッシュなども該当
- C+P:ネットワークが故障しても一貫性を保つ(ただし使えなくなる) Apache HBase - Wikipedia