[過去ログ] 【3Dゲームエンジン】Unity質問スレッド36 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
528
(1): 名前は開発中のものです。 [sage] 2018/06/27(水) 07:45:22.36 ID:3rw/3qxm(1/2) AAS
>>526
526(2): 名前は開発中のものです。 [sage] 2018/06/27(水) 05:52:24.02 ID:MZGUGuBC(1/2) AAS
すみません、例えば、ゲーム本筋をまわすManagerスクリプトを作ったとして
そのスクリプト内で、
各ゲームオブジェクトにアセットしたスクリプトのメソッドを使うためには
『 //ゲームオブジェクトを検索し取得する
 変数名 = GameObject.Find("オブジェクト名"); 』
を必ず宣言する必要があるのですよね?

しかし、Managerスクリプト内にて
FindObjectOfType<スクリプト名>().メソッド名();
だと、取得抜きで、いきなり他のスクリプトのメソッドを利用できるのは
なぜですか?
>必ず宣言する必要があるのですよね?
そんなことはなく、例えばオブジェクトaにアタッチされたbのメソッドcを使うとして
GameObject.Find("a").GetComponent<b>().c()
と書けばFindでも一行でメソッドを呼び出せる
逆にFindObjectOfTypeで探したbのインスタンスを変数に保存することもできる
何度もbやcを呼び出すときは変数に保存した方が良いというだけ
530
(1): 名前は開発中のものです。 [sage] 2018/06/27(水) 09:18:58.70 ID:MZGUGuBC(2/2) AAS
>>527
527(1): 名前は開発中のものです。 [sage] 2018/06/27(水) 05:59:28.49 ID:UNiIJaZd(1) AAS
>>526
それは1行で取得&関数呼び出ししてるからだよ。
ただ、取得が失敗した時にエラーになるから分けた方が安全かな。
>>528
ありがとうございます。まだちょっと理解できてないのですが
そのGameObject.Find("a").GetComponent<b>().c()は
aというオブジェクトを参照して、それにアセットしてるスクリプトbのメソッドcにアクセス、で
FindObjectOfType<b>().c()では
スクリプトbを参照して、その中のメソッドcにアクセスする、ですよね?

逆に言えば、FindObjectOfTypeではゲームオブジェクトにアセットした
スクリプトにはアクセスできない、ということでしょうか?
でも、FindObjectOfType<Object>でオブジェクトを探せる、とありました。
これはどういうことでしょうか?
この探すObjectというのはGameObject.Findで取得するゲームオブジェクトのことでは無いのでしょうか?
Unity上でのゲームオブジェクトとオブジェクトクラスの違いが理解できていません。
ゲームオブジェクトの中身ってオブジェクトクラスに入ってる情報じゃ無いんですか?

FindObjectOfTypeはゲームオブジェクトに入って居ない
スクリプトにアクセスする時だけ使うってことですか?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s