妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

Construction Scriptを、アクターのドラッグ中に実行させない方法

f:id:una_unagi:20180411214914p:plain

「昨日やったやつなんだけどね、あれやっぱり上手くいってなかったよ……」

妹「えーーーー!!」

imoue.hatenablog.com
実は上手く言ってなかったやつ

「結局、マウスを離した時点では、グリッドからずれた位置にあって、その後直ってないんだよね、よく考えると。まあoldPosition変数にグリッドに合わせた場合の位置情報はあるから、BeginPlayの時にそれ使って合わせてもいいけど、それだったら最初からBeginPlayで位置合わせすればいいというか」

妹「BeginPlayだと、エディタ上で確認できないから、なんかやだな」

「折角Construction Scriptがあるからね。そういうのがないゲームエンジンだとそうするしかないけど。RetriggerableDelayでしばらく待つ方法も、ConstructionではDelay出来ないので無理」

forums.unrealengine.com

「と考えていたところで発見したのがこの質問。アクターをドラッグして動かしてる時に、普通はConstructionScriptが何回も作動するけど、それを止める方法はないのか? という話。それがあった」

f:id:una_unagi:20180411215818p:plain

「こうするとマウスを離した時に位置合わせするし、移動中に勝手に元の位置に戻ることもないと。いったん離してみるまで確定できないっていう問題はあるけど」

妹「それぐらいだったら許容範囲内。エディタ上で適当に動かしても、ちゃんと自分用グリッドに合わさるわけだから。OK、OK」

「ブループリントのクラスの設定でチェックを入れておけば、Construction Scriptの方は前々回のやつと同じでいい」

imoue.hatenablog.com
前々回のやつ

「本当はConstructionScriptの中で、マウスで移動させてる所かどうかで分岐できれば、昨日の仕組みと複合してもっとピッタリして処理ができそうだけど、それは方法がわからなかった」