FC2ブログ
    03 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 05

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Awake,Startと自分で作ったメソッドを呼び出した時の順番。 

    こんにちは。
    大坂です。

    自分ではあんまり書かない書き方ですが、気になったことです。
    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)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/751-c4a4909c
    この記事にトラックバックする(FC2ブログユーザー)