http://catlikecoding.com/unity/tutorials/graphs/
newはどのように用いる?
newキーワードは、オブジェクトの新しいインスタンスや構造体の値をコンストラクトする場合に用いる。コンストラクタと呼ばれる特別なメソッドを直後に記載する必要があり、コンストラクタは所属するクラスあるいは構造体と同じ名前をつける。
チュートリアルでposition.yに値セットしないのは何故?
ポジションがオブジェクト参照であれば正しく動くが、実際には構造体の値である。
一意のオブジェクトインスタンスはひとつのみ存在することが出来るが、複数の変数から参照することが可能である。値に対してインスタンスをアサインすることと複製することは別のことである。
たとえて言うならば皆でAさんの名前を一斉に呼んで指示するようなものである。他の人がAさんの名前を聞いたからといってAさんが二人になるわけではない。
整数や構造体のインスタンスは先のオブジェクトインスタンスとは異なる動きをする。もし構造体の値を呼び出しした場合は、複製がそこで行われて独立に保持される。Aさんの名前の例でいうと、
今度は名前を呼んでも複製なので今度は当人から返事をもらうことが出来ない。
すなわちある地点のポジション(position)を呼び出ししても複製が行われる。今回のチュートリアルではこの複製された値に何かセットしても、もとの地点そのものを更新しないと何も値の変更は行われない。
returnはどのように用いる?
returnキーワードを用いることでメソッド終了後の戻り値を知らせることが出来る。戻り値はメソッドと型を合わせる必要があり、voidである場合には戻り値が存在しない。
returnステートメントはvoid、コンストラクタの場合を除いて必ず戻り値をセットするように記載する必要がある。
また、複数の戻り値をセットすることが出来る。その場合、複数の出口が存在することになり、どのreturnが用いられるかはifステートメントで分岐させる。
チュートリアルでstaticである必要性は?
チュートリアル記載のケースはstaticでなうとも良い。ただし、これらのメソッドは後にstatic配列に用いられる予定であり、これらもstaticである必要性はない。
多くのケースでstaticである必要性はないが、オブジェクトインスタンスと独立して値やメソッドが存在することが出来る場合にstaticにするように私自身はしている。
--------
第3回に続きます。
Unityプログラミング応用を自分のものにするぞ!
0 件のコメント:
コメントを投稿