FC2ブログ
    09 «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.31.» 11

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

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

     

    【ハルシオンブログ】オブジェクトをnullにする場合は、DestroyよりDestroyImmediateを使った方がいいらしいですよ? 

    おはようございます。月曜の朝です!
    1週間が始まりました。坂内です。

    Unityでのnullの話。

    例えばこんなコード

    [Blog0607.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog0607 : MonoBehaviour
    {
    [SerializeField] Text lblText;

    void Start()
    {
    Debug.Log(lblText);
    }
    }


    lblTextにはなにもアサインしていません。

    Null
    UnityEngine.Debug:Log(Object)
    Blog0607:Start() (at Assets/Scripts/Blog0607.cs:12)

    「Null」が表示されました。

    では次にlblTextにTextのオブジェクトをアサインします。

    Text (UnityEngine.UI.Text)
    UnityEngine.Debug:Log(Object)
    Blog0607:Start() (at Assets/Scripts/Blog0607.cs:12)

    「Null」ではなくなりました。

    では、アサインした後にコードでnullにしてみましょう。


    using UnityEngine;
    using UnityEngine.UI;

    public class Blog0607 : MonoBehaviour
    {
    [SerializeField] Text lblText;
    [SerializeField] Text lblText2;

    void Start()
    {
    Debug.Log(lblText);
    Debug.Log(lblText2);

    lblText = null;
    Destroy(lblText2);

    Debug.Log("-----------------");

    Debug.Log(lblText);
    Debug.Log(lblText2);
    }
    }


    nullを入れるとnullになりますが、Destroyだとnullにはなりません。

    結果はこちら。

    実はDestroyだとすぐには消えないようです。
    こいつをすぐに消すには、Destroyを使わずにDestroyImmediateを使うといいらしいですよ。


    using UnityEngine;
    using UnityEngine.UI;

    public class Blog0607 : MonoBehaviour
    {
    [SerializeField] Text lblText;
    [SerializeField] Text lblText2;

    void Start()
    {
    Debug.Log(lblText);
    Debug.Log(lblText2);

    lblText = null;
    DestroyImmediate(lblText2);

    Debug.Log("-----------------");

    Debug.Log(lblText);
    Debug.Log(lblText2);
    }
    }





    ということで、すぐに消したい場合はDestroyImmediateを使いましょう。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

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