僕は[RequireComponent()]を理解しなければなりません!
リファレンスには、
これはセットアップエラーを回避するのに役に立ちます、、、?
忘れ物をなくすための機能?
わざわざ追加して書く必要があるものなのか?
本当、よく分からない
よし、使ってみよう。
でも使い方が、そもそも分からない。
そこで作戦
1)RequireKnightオブジェクトを作成して
2)Rigidbodyコンポーネントをつけよう。
3)RequireTestスクリプトを作成してそこに[RequireComponent()]と適当にRigidbody取得的なこととか書こう。
で、
4)Rigidbodyコンポーネントをはずしちゃおう。
その時に何が起こるのか?
1)RequireKnightオブジェクトを作成して
2)Rigidbodyコンポーネントをつけよう。
3)RequireTestスクリプトを作成してそこに[RequireComponent()]と適当にRigidbody取得的なこととか書こう。
public class RequireTest : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
// リジッドボディを取得
rigid = this.GetComponent<Rigidbody>();
// 適当に
if (rigid.useGravity == true)
{
// 重力を無効にする
rigid.useGravity = false;
}
}
}
そしてついに
4)Rigidbodyコンポーネントをはずしちゃおうっと。
僕は[RequireComponent()]を理解しなければなりませんでしたが
[RequireComponent()]をつけてませんでした。
[RequireComponent()]()の中には何入れるのよ?という「疑問」
こうらしい、、、
[RequireComponent(typeof(Rigidbody))]
RequireComponent(typeof(コンポーネント名))]
出来た!ので検証、、、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class RequireTest : MonoBehaviour
{
Rigidbody rigid;
void Start()
{
// リジッドボディを取得
rigid = this.GetComponent<Rigidbody>();
// 適当なif文
if (rigid.useGravity == true)
{
// 重力を無効にする
rigid.useGravity = false;
}
}
}
なるほど、コンポーネントをつけてると既にはずせない。