見出し画像

[2023.11.23] Unityを始めてみる(5) - 動くオブジェクトに苦戦

チュートリアルで作ったゲームに、障害物として動くオブジェクトを配置する、というのをやってみる。


参考にしたサイトはコレ。


まぁ難なくできた。

コードは参考サイトと全く同じではなく、自分オリジナルの箇所も入れたりした。

動く障害物
(鳥が走るスクリプトは外してある)


ところがすぐに問題が発生した。

先ほど作った障害物を複製し、何個か置いてみたところ、動きが小刻みになってしまったのだ。

複数置いたらバグった

全てに同じスクリプトがセットされているので、同じ変数を同時に更新してしまっているのだろう。


…さてどうしたものか。

それぞれに別のスクリプトをセットすれば独立して動くはずだが、そんなダサいことはしたくない。
1つのスクリプトでそれぞれを独立して動かすやり方が、きっとあるはずだ。

しかし、Unityもc#も初心者の自分にはちょっと検討がつかない。


とりあえず「参考サイトの人が自分と同じ問題にブチ当たれば、改善策も出るだろう」と期待して、動画を見進めてみることにした。

すると、複数配置している動画が見つかった。

でもバグってない…なんでだ…

自分のコードと見比べてみる。

……

なるほど、自分のソースでは変数宣言にstaticを付けてしまっていた。

複数のオブジェクトから呼ばれるときの変数の寿命の感覚が、どうにもまだ掴めてないな…

staticを消したら直った。
ヤッホイ。

直った
(動作確認のため配置は適当)

でもアレだな、それぞれの動きをズラしたいな。

鳥が走るスピードに合わせてギリギリ通れる感じにしたい。

ズラシが次の課題か…

この記事が気に入ったらサポートをしてみませんか?