TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Unity: 落下の自前計算 (簡易版)

Cheap gravity script - Unity Answers厳密には違いますが、簡易版で同じような動きになります。そこまで正確に動きを計算する必要がないのでこれでいいならこれを使いたいです。簡易重力を自前で計算した時の鉄球の動き↓ float velocity = 0; void FixedUpd…

Unity: UniRxのUpdateAsObservable

UpdateAsObservable Updateを実行することができる 使い方 using UniRx; using UniRx.Triggers; void Start() { this.UpdateAsObservable() .Subscribe(UpdateRx); } void UpdateRx(Unit unit) { Debug.Log("updating"); } this.UpdateAsObservable()をSubsc…

Rust: getterとsetter

Rustでgetterとsetterを作りたかたったので調べました。 oop - Writing getter/setter properties in Rust - Stack Overflow ↑のサイトから拝借して、単純化してみると以下になりました。 #[derive(Default)] struct Person { first_name: String, } impl Pe…

Rust:selfは糖衣構文

Rustのself引数まとめ - 簡潔なQ selfは糖衣構文で&が付いていようがついてなかろうが、引数を使う時はself。 &selfで定義して、使う時は&をとったselfで使うことに少しもやっとしていたので、理解できてよかった (&selfで定義するとselfが&selfとして利用で…

Unityをアプデしたらエディタコンパイルが速くなっていた

環境 Unity 2019.3.15 -> 2019.4.4 iMac 2019 推測される原因 (予想です。) Enter Play Modeが実装されてからソースコードを変更した時に行われるコンパイルが異常に遅くなっていました。昔なら3から5秒くらいだったのが、30秒以上かかることがざらになって…

デザイン:ナイトを描いた時の思考の備忘録

デザインスキルがないので、いつもデザインは気合と根性で描いています。今回描いたのは「ナイト」です (自作ゲームで使います)自分的にはぱっと見良さげな感じに見えるのでとても満足しています。 精神状態 デザインはとても疲れるので、やる気も出ず、進捗…

Unity: Addressable.LoadSceneAsyncとEnter Play Modeの時は一回しかCompletedが呼ばれない

環境 unity 2019.3.15 Addressables 現象 Enter Play Modeを設定していると、Addressable.LoadSceneAsyncを呼ぶと一回しかCompletedが呼ばれません。 どういうことかと言いますと 再生し、停止して再生すると呼ばれません。 Hierachyを見てもsceneがloading…

Unity: 「Unknown Assembly DOTween」というエラーが起きる

環境 Unity 2019.3.15 Addressables 1.8.3 DOTween 1.2.335 推測 AddressablesとDOTweenを使用するとこの現象が起きる気がします。(予想です。) 現象 Unknown Assembly DOTween UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) Unityを再生時に上記エラ…

UniRxのCombineLatestでReactivePropertyを合成する

ことの経緯 1つのReactivePropertyと変更対象のUIが1対1になっている時は問題ありませんが、2つのReactivePropertyが異なる条件で1つのUIを変更しようとしているときに困ったことになりました。例えば ゲージが貯まれば背景のグレー解除 マナが貯まれば背…

SourceTreeで特定のファイルだけStashする

git

stashは全部の追跡ファイルをstashしてしまうので割と一部分のファイルだけスタッシュしたい時があります。それをSourceTreeでやってみたいと思います。 一発で行う方法ではないので数回の作業となります。 (やや邪道です) 流れ stashしたく無いファイルを仮…

UnityでAndroidビルドすると「This could be caused by a class being stripped from the build even though it is needed. Try disabling 'Strip Engine Code' in Player Settings.」

現象 05-17 19:19:48.076 4675 4713 E Unity : This could be caused by a class being stripped from the build even though it is needed. Try disabling 'Strip Engine Code' in Player Settings. 原因 Addressables(Asset Bundle)を使っていると、手動で…

zsh print -z

zsh

ターミナル(コマンドライン)のバッファを編集する方法です。(zshのみ) ちょっと日本語の意味がわかりづらいですが、以下のような画面に表示されている文字を編集したり、カーソルの位置を変えたりすることです。 環境 zsh やり方その1 (ショートカット登録必…

Affinity Designer: 波線

波線を書きたいことがあってAffinity Designerでどうやって書けば良いのか調べていたら以下のサイトが参考になりました。 AffinityDesignerでの波線の描き方 | coneta.me やり方 1. ペンツールでギザギザを書く 2. コーナーツールで角をつける このツールを…

PixelPerUnitとCameraのSizeから背景の高さ計算する

高さいっぱいになるような背景画像を用意したい状況に遭遇したので、何pixel用意すれば良いかの考え方を調べました。 考え方 考える時は2つの要素が必要です。 カメラのsize 背景画像のpixelPerUnit 例えば 背景画像のpixelPerUnitが100 カメラのsizeが5 と…

Affinity Designer ブレンドモードスクリーン

ブレンドモードでよく使う「スクリーン」について調べてみました。以下のサイトが 加算 乗算 スクリーン について分かりやすくまとまっていました。 加算とスクリーンを正しく使い分けて綺麗な光を描くヒント - コンポジゴク スクリーンとは スクリーンは乗…

Affinity Designer オブジェクトの均等な整列

オブジェクトを均等に整列したい時のやり方です。 やり方 水平に均等に配置します。 整列させたいオブジェクトを選択します。 次に上のちょっと右あたりに整列するためのボタンがあるのでここを押します。 水平に揃えるために「垂直方向に揃える」から「上下…

affinity designer スライスの時にスライスサイズを手動で指定する

目的 スライスが自動で期待のものにならなかった時に、手動でスライスのサイズを指定する方法です。 方法 1. 書き出しペルソナ 2. いつものようにスライスを作成する 3. スライスタブからスライスのサイズを指定したいものを選択して、右下の変換ウィンドウ…

Unity: Rotationを指定する

角度指定をとりあえず雑に指定する方法のメモです。Unity InspectorのRotationでx, y, zを指定して角度を入力する方法です。(Quaternionから逃げたい!) float angle = 90; transform.eulerAngles = new Vector3(0, 0, angle); // or transform.rotation = Q…

utf8jsonのUtf8Json.UniversalCodeGeneratorをDockerでビルドしてMacで動かす

背景 GitHub - neuecc/Utf8Json: Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).utf8jsonを使おうとしたところAndroidでは事前に自動生成したファイルが必要になるらしいです。その自動生成するバイナリ(…

Unity: Script Execution Orderを変更すると不明なエラーがでる

script Execution orderを変更したら以下のような大量のエラーが出ました。 特に悪いことはしていないので、とりあえず回避できる方法を載せておきます。 MissingReferenceException: The object of type 'MonoScript' has been destroyed but you are still…

Rust: temporary value is freed at the end of this stat

現象 struct Note { name:String, } let name = note.name.trim(); println!("{}", name); こういうコードを書いたら以下のようなエラーがでた。 Rust: temporary value is freed at the end of this stat 原因 rust - Temporary value is freed at the end …

Rust: チルダを展開したい(ホームディレクトリ を取得したい)

パスにチルダ「~」を含んでいると展開してくれないのでcrateを利用してみました。 やりたいこと チルダを展開する サンプル GitHub - netvl/shellexpand: A library for shell-like expansions of variables in strings format!("{}", shellexpand::tilde("~…

Rust: サブモジュール内でmacroをimportしたい

サブモジュール内でマクロをインポートしようとすると以下のエラ〜メッセージが出ました。 extern crate` loading macros must be at the crate root 解決方法 How do you import macros in submodules in Rust? - Stack Overflow これにある通り、 #[macro_…

Rust: コンソールにダブルクォーツを表示させない「""」

consoleにダブルクォーツが表示されたり、表示されなかったりすることがあったので、気になったので、表示させない方法を調べました。 やりたいこと コンソールにダブルクオーツを表示させない 写真のようにlsが"ls"として表示されています。 解決方法 [Very…

VSCodeで行頭へ戻る (Mac)

VSCodeで行頭へ戻ろうとしたときに他のエディタのようにCtrl + aを押して戻ろうとしたのですが、スペースを無視してくれず、行の先頭に戻ってしまいます。文字が書き始めの行の先頭に戻って欲しいです。一応cmd + ← で意図したことはできるのですが、他のエ…

unityのMonobehaviourの名前を変更する手順が以前と異なっている!?

unityのMonobehaviourの名前を変更する手順が以前と異なっているような気がします。 環境 Unity2019.3.9 手順 昔は UnityEditorからMonobehaviourの名前を変える テキストエディタで名前を変える の手順だったのが、 テキストエディタで名前を変える UnityEd…

Rust: std::process::Commandを使ってvimを立ち上げる

やりたいこと Rustで作ったスクリプトでVimを実行して起動させたい。 失敗したこと std::process::Command - Rust ここのサンプルのようにしたらできるのかなと思って、やってみました。結果は失敗 use std::process::Command; Command::new("view") .arg("t…

Unity 2DでPhysics2D.OverlapBoxを使う

Physics2D.OverlapBoxを使おうと思った動機 敵との衝突判定に使おうと思いました。 味方、敵は衝突しない(Layer Collision Matrixでチェックを外す) rigidbodyは重力の影響を受ける。(地面からジャンプ、着地したりできる) このときに、OnCollisionEnter2Dで…

Rust: ファイル操作後はclose処理はしなくても良い

ファイル操作していた時に、ふとclose処理がないと思ったのですが、How to close a file? : rust スコープが終了するとdropが呼ばれ、ファイルが閉じてくれるので他の言語でよくあるcloseメソッドを呼ばなくても良い。 他の言語では python withをつけるとwi…

Rust: ターボフィッシュ コロンコロン::<>

意味 型を具体的に明示するときに使用します。 呼び方はターボフィッシュ(turbofish)。 左辺に型を書くのか、それともターボフィッシュで書くのが良いか? 左辺に型を書くべきかそれともターボフィッシュを使うのかどちらが良いか? Type Annotation in Bind…