公式が結構詳しいのでその辺読んだようがいいと思う。
以下は自分用の手順
自分のmacにインストールしてみる。
home brew でインストール brew install starship
viでfishのコンフィグの末尾に設定を追加して有効化する。
vi ~/.config/fish/config.fish
これを追加する。
starship init fish | source
Fishのこの状態が
こんな感じに見た目が変わっていた。
公式が結構詳しいのでその辺読んだようがいいと思う。
以下は自分用の手順
自分のmacにインストールしてみる。
home brew でインストール brew install starship
viでfishのコンフィグの末尾に設定を追加して有効化する。
vi ~/.config/fish/config.fish
これを追加する。
starship init fish | source
Fishのこの状態が
こんな感じに見た目が変わっていた。
Unityでタイマー機能をググってみたのだけれどもいまいちピンとくるものがなかったのでひとまずやったことをメモする。
CanvasにTimeオブジェクトを作成してCanvasと紐付けをする。
当初Scoreだけを実装していたのでScoreの値がCanvasに直接くっついている状態だった。
仕様は以下のようにした
まず固定値で1分を設定する。
Updateで使うTime.deltaTimeがInt型だとエラーになってしまうのんでFloat型で60秒を宣言する。
private float countTime = 60;
描画するテキストオブジェクトは以下を宣言する。
public Text timeCount;
最初は単純にカウントダウンができるかを確認したかったのでUpdateをこんな感じで実装してみた。
void Update() { countTime -= Time.deltaTime; timeCount.text = countTime.ToString(); }
こんな感じになる
しかし、今の実装だと小数点以下も見えてしまうので仕様上と違う
ここ描画は整数のみの部分を切り出した実装としたいのでコードの追加する。
//整数とする変数を追加 private int second; // Update is called once per frame void Update() { countTime -= Time.deltaTime; second = (int)countTime; //(int)countTimeでint型に変換して表示させる。 timeCount.text = second.ToString(); }
こんな感じに整数でTimeが表示された。
整数までカウントダウンできるようになったが、このままだとマイナスのカウントが永遠と描画されてしまう。
タイマーをストップする基準は * カウントが0になったらそれ以上カウントしない なのでif文でカウントが0になったら0のままにする制御を追加する。
if (countTime <= 0) { second = 0; timeCount.text = "0"; }
一度テストしてみる。 ここでは60秒も待つと長いので、5秒で0のままになるかを数える。
描画は0で止まっているのでOK
split関数で空文字を指定すると取得できる。 sample: split_char.rb
str = "tukapai" array = str.split("") puts array
output:
ruby split_char.rb ["t", "u", "k", "a", "p", "a", "i"]
適宜更新
Headless Chromeを使って試験をしたい場合はこれをかく。
spec-helper.rb
/require/‘capybara/rspec’ RSpec.configure do |config| config./before/(:each, type: :system) do driven_by :selenium_clome_headless end
もちろんGemは入れないといけないのでそこだけ注意する。
ググってもうまい回答を探すのが難しかったので個人的にうまくいったことだけを載せています。
※余裕があったら何でそうなるのかは調べますが、ご存知の方がいればコメントしていただけると嬉しいです。
Destroy(gameObject);
で設定するとうまくいった。
今までの実装
今までは、インスペクターで自分のオブジェクト名を指定して削除する仕様にしていた。 この場合はすでにGameObjectがscene内内にいる場合は有効 でも、ファクトリーっぽく自動生成される場合はちょっと困った。
void OnCollisionEnter2D(Collision2D collision) { // 衝突したとき // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName) { //今までは一個だけのオブジェクトを削除していたのでオブジェクトの名称を直接してしていた。 GameObject DestroyObject = GameObject.Find(DestoryObjectName); Destroy(DestroyObject); }
うまくいった実装
こっちの実装ではアタッチしているgameobjectを取得して削除する、という仕様に切り替えた
でも、何で公式に書いているようにDestroy(this);
で消さないの?ということもあると思うが、thisの場合だとなぜかうまく消えなかったのでこっちを採用した。
その辺りは、バージョンなどが関係するのかな、わからんけど
void OnCollisionEnter2D(Collision2D collision) { // 衝突したとき // もし、衝突したものの名前が目標オブジェクトだったら if (collision.gameObject.name == targetObjectName) { //複数の同じオブジェクトを生成してぶつかった物を削除するのであれば //シンプルにgameObjectをさして削除するとオブジェクトが消える Destroy(gameObject); } } }
通常のCanvasオブジェクトだと非常に大きくて Gemeビューで数値調整は調整が大変だった。 SceneビューでMainCameraに収まるようにしたかったのでその時のメモ
通常は”ScreenSpace-Overray”の設定になっていると思うのでここをメインカメラの枠内に収まるように”ScreenSpace-Camera”に変更する。
選択方法は右の◎のアイコンから選択してもいいし、ヒエラルキーからオブジェクトをドラッグ&ドロップしても良い
選択後はSceneビューでカメラの枠にテキスト情報などが収まっていればOK
忘れがちなのでメモ
ふと全国の小学生の中からタレントって何人くらいいるだろうなって思ってRubyで計算してみたところ0が結果として出力されたのでちょっと期待と違うなーって思った。
~ irb 17.8m Wed Mar 4 21:49:20 2020 irb(main):001:0> 405/644900 => 0
なんでかなと思ったがRubyには便利なClassオフジェクトがあるので一度確認をしてみる
irb(main):003:0> (405/644900).class => Integer
想定していたみたいに、小数点以下の割り算をする場合はデータ型をFloatにしてあげないといけないのんでこのように変更
irb(main):005:0> 405/644900.to_f => 0.0006280043417584122
こうする事で浮動小終点の計算ができる
でも調べたいのはおよそ何パーセントいるんだよって事なので、こんなに細かい数字はいらない。。。
なので余計な部分はfloor関数を使って下の部分をカットすることにした。
irb(main):008:0> (405/644900.to_f).floor(5) => 0.00062
このくらいになると割と現実的に使えそうな数字になってきたんのでいいのではないだろうか
ちなみに全国の0〜13歳でタレントになっている確率はおおよそ0.06%なのでSSRを100ガチャで当てるよりもレアだぞ!
irb(main):009:0> (405/644900.to_f * 100).floor(2) => 0.06