【ハルシオンブログ】Awake,Startと自分で作ったメソッドを呼び出した時の順番。
こんにちは。
大坂です。
自分ではあんまり書かない書き方ですが、気になったことです。
Instantiateしたタイミングで自分で作ったメソッドを呼び出した時に、Awake,Startとの順番について。
Test_1.cs
出てくるログの順番はこうですね。

Awake,Init,Startの順番で呼ばれてますね。
APIを見てみると。
Awake:スクリプトのインスタンスがロードされたときに呼び出されます
Start:Start はスクリプトが有効で、Update メソッドが最初に呼び出される前のフレームで呼び出されます
となっているので、
今回のスクリプトだと、Instantiateと同フレームでInitを読んでいるので、Startより前に呼ばれるということですかね。
まぁ個人的には自分で順番を意識したいので今回で言えば、StartとInitを混在させて書くことはないのですが、
ちょっと気になったので、というお話でした。
ではまたノシ
大坂です。
自分ではあんまり書かない書き方ですが、気になったことです。
Instantiateしたタイミングで自分で作ったメソッドを呼び出した時に、Awake,Startとの順番について。
public Test_1 test_1;
void Start() {
Instantiate(test_1, transform).Init();
}
Test_1.cs
public class Test_1 : MonoBehaviour
{
void Awake() {
Debug.Log("Test_1_Awake");
}
void Start()
{
Debug.Log("Test_1_Start");
}
public void Init() {
Debug.Log("Test_1_Init");
}
}
出てくるログの順番はこうですね。

Awake,Init,Startの順番で呼ばれてますね。
APIを見てみると。
Awake:スクリプトのインスタンスがロードされたときに呼び出されます
Start:Start はスクリプトが有効で、Update メソッドが最初に呼び出される前のフレームで呼び出されます
となっているので、
今回のスクリプトだと、Instantiateと同フレームでInitを読んでいるので、Startより前に呼ばれるということですかね。
まぁ個人的には自分で順番を意識したいので今回で言えば、StartとInitを混在させて書くことはないのですが、
ちょっと気になったので、というお話でした。
ではまたノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】今年もあと1か月になりました!ビルド容量減らしたい時とかに重宝しそうなアセットの紹介! | 【ハルシオンブログ】intに変換できたら処理したいとき。 »
コメント
| h o m e |