ヘッダ
ソース
こんな感じでコンストラクタの処理をさせたいんだけど
文句言われる
とりあえず解決法:
謎の引数を入れて親のコンストラクタと一緒にコールする
謎の引数を入れないと引数が違うって駄々こね始める
謎の引数の正体はここに書いてあるかもしれないらしい。
いつか読む
追記:
引数を追加すると通らなくなる。
これはもう許されていないらしい。
なんなんだ
BPのStaticMeshを押して、下のほうのOn Component Hitを押すと出る。
ちなみに、Hitは接触時でOverlapは重なった時であり
Hit = Overlapではないことに注意。
当たったら消えるオブジェクトのDestroyをOverlapで作ってて、
消えたり消えなかったりしてだいぶ苦労した。
BPだとあんなに簡単なのにね
とりあえず最低限動かすにあたって変更が必要なのは
L61の第3引数 Delay後にコールする関数
第4引数 Delay時間
第5引数 ループするかどうか
あともう一つ
#include "TimerManager.h" をインクルードすること!!!!!!!!
インクルードしなくてもなんかコンパイルは通るんだけど、タイマーが
うまく動いてくれない
これ見つけるのに10年かかった
これ。
VisualStudioのデバッガから起動してから全然でなくなった
ただ、VS側ではコンパイルできなくなるのでUEのコンパイルボタンから
コンパイルを行う
LiveCodingでもいいらしいけど面倒で調べてない
UE4だと実験的になってるけどどうなんだ
以下先に書いてたほぼ愚痴
実際に仮想関数をコールしているわけではないのにも関わらず出る。
実行時以外にも、オートセーブ時とかコンパイル時にも出る。
勝手にオートセーブして勝手に落ちて作ってたデータが消えると結構ストレス。
上記のやり取りを見る感じ、HOTRELOAD(VisualStudioで行ったコンパイル結果を
UEにすぐ適用する機能?)が問題らしい。
記事のタイトルが迫真ド直球で笑う
LiveCodingってのがいいらしいんだけど、実験的~って書いてたからやめた
UE5になったら使おう
それまでは、VisualStudioのデバッガから起動するようにする
VSからコンパイルはできなくなるけど、UEでコンパイルすればモーマンタイ
あと何気に、メモリアクセスエラーとかで落ちた時VSが落ちたところで
ブレークされるのも高評価
なんか落ちた時の回復も早い気がする
何よりストレスが少ない
これが一番大事
コピペ用
いちいち覚えるの面倒
LOG
UE_LOG(LogTemp, Log, TEXT("aaaaa %d"), 1);
画面表示
#include "Engine/Engine.h"
FString Str = FString::Printf(TEXT("aaaaa %d"), 1);
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, Str );
数字の1は変数で置き換え可能
そのあたりは大体printfと同じ感じ
色変えとか必要になったらその都度調べればいい
読み込む前にCSVの1行に相当する構造体を準備する
CSVの列の名前と変数名は同じにしておく
CSVをコンテンツブラウザに投げ込んで、種類はさっき作った構造体にする
入っていればOK
変数名と列の名前を合わせないといけないことに気が付くのに1日かかった
元々CSVの列名を日本語にしていたから猶更
C++ではこんな感じ
L70で行の名前を全部取得し、その回数分だけループ(RowNameは配列)
L73でその名前に一致する行の構造体が取得できるので、そこにアクセスする感じ
ちなみに行の名前はこれ
FName型だったかな
L70で使っているテーブルはヘッダで宣言してある
エディタ側で参照を渡してあげた
振り返るとだいぶ初歩的なところで詰まった気がする
そういう日もある
イベントディスパッチャーは情報受信側が発信側にバインドを行って
イベントが発生するのを待つ仕組み。
情報発信側は情報受信側のことを知らなくて良い。
BPインタフェースはディスパッチャーと違ってバインドは要らないが
イベントを発生させる際にターゲットが必要。
GetAllActorsofClassで見つけたやつをこのターゲットに食わせれば不特定多数に
イベントを発行できると思う。
GetAllActorsofClassを使ったら負け教に入信している自分としては使いにくいイメージ。
情報受信側は情報発信側のことを知らなくて良い。
細かいことはよくわからないけど、どちらがどちらのことを知っているか
知っているべきかを考えて使い分けようと思う。