質問: Vector3.right; } ``` などのようなスクリプトは問題ないのでしょうか? また、その場合は変数aのなかにコンポーネントの内容を入れてしまって、都度取り出しているだけだから毎回見に行ってはいないので軽い、という理解で良いでしょうか? 同じように、transform.positionが許される理由もはっきり理解できていません つまらないことですがご教授いただければと思います
回答: > > また、その場合は変数aのなかにコンポーネントの内容を入れてしまって、都度取り出しているだけだから毎回見に行ってはいないので軽い、という理解で良いでしょうか? > > > おおよそその理解で間違っていません。 コンポーネントは、大抵はプログラム実行中に頻繁に付け加えたり削除したりするものではありません。 つまり、`Update`で`GetComponent`でコンポーネントを取得しても毎回同じ結果になるので、最初の一回だけ実行すればよい、という考えです。 言い換えると、**プログラム実行中にコンポーネントを付け替えたりする場合には、注意しなければなりません。** > > 同じように、transform.positionが許される理由もはっきり理解できていません > > > ゲームオブジェクトが動かない、という事はあまりないと思います。 だから、`Update`で取得する他ない、というだけです。 これも言い換えると、絶対に動かないものであれば`Start`で最初に位置を取得しておけばよい、とも言えます。 `GetComponent`は、それほど重い処理ではありませんが、結構多用すると思います。 多用すれば、チリも積もって重くなる事もあります。 ですので、このような気遣いはしておいた方がいい、程度に考えてください。