![見出し画像](https://assets.st-note.com/production/uploads/images/122062976/rectangle_large_type_2_3590bb39b8b5e1d2de114d1630c61a94.png?width=1200)
[2023.11.23] Unityを始めてみる(5) - 動くオブジェクトに苦戦
チュートリアルで作ったゲームに、障害物として動くオブジェクトを配置する、というのをやってみる。
参考にしたサイトはコレ。
まぁ難なくできた。
コードは参考サイトと全く同じではなく、自分オリジナルの箇所も入れたりした。
![](https://assets.st-note.com/production/uploads/images/122339475/picture_pc_301bad22e99aefcc5099de311acc54e9.gif?width=1200)
(鳥が走るスクリプトは外してある)
ところがすぐに問題が発生した。
先ほど作った障害物を複製し、何個か置いてみたところ、動きが小刻みになってしまったのだ。
![](https://assets.st-note.com/production/uploads/images/122339659/picture_pc_1b9db14e0a80a8beda3f73bea4016e39.gif?width=1200)
全てに同じスクリプトがセットされているので、同じ変数を同時に更新してしまっているのだろう。
…さてどうしたものか。
それぞれに別のスクリプトをセットすれば独立して動くはずだが、そんなダサいことはしたくない。
1つのスクリプトでそれぞれを独立して動かすやり方が、きっとあるはずだ。
しかし、Unityもc#も初心者の自分にはちょっと検討がつかない。
とりあえず「参考サイトの人が自分と同じ問題にブチ当たれば、改善策も出るだろう」と期待して、動画を見進めてみることにした。
すると、複数配置している動画が見つかった。
でもバグってない…なんでだ…
自分のコードと見比べてみる。
…
……
なるほど、自分のソースでは変数宣言にstaticを付けてしまっていた。
複数のオブジェクトから呼ばれるときの変数の寿命の感覚が、どうにもまだ掴めてないな…
staticを消したら直った。
ヤッホイ。
![](https://assets.st-note.com/production/uploads/images/122348886/picture_pc_9de613e66107ed681312b3c3b4da433e.gif?width=1200)
(動作確認のため配置は適当)
でもアレだな、それぞれの動きをズラしたいな。
鳥が走るスピードに合わせてギリギリ通れる感じにしたい。
ズラシが次の課題か…
この記事が気に入ったらサポートをしてみませんか?