System.Diagnostics.Conditional魔法 - コード上のドキュメント

  UIの契約より、様々なピットとの最近の研究。

  シリアライズ機能プレハブそれから魔法System.Diagnostics.Conditionalことを発表しました。

  私たちは、顔UIは、各種ボタンの取得は、コンポーネントはプレハブのダイレクトシーケンスの大きく2種類、その他の意志あなたのコードで取得することです。 

連載

= transform.Find tagObj("チャイルド/キューブ").gameObject; // コードを取得します

  それぞれ独自の利点があります。

    シリアル化は、コードを書かない、簡単であり、そしてあなたがUIをドラッグ何でもこれにノードが正しく引用することができます。しかし、問題は、あなたも迷子に数日後に、長期的なメンテナンスの経験があった、また、非常に明白です人々は知っておく必要があります。

    コードはメンテナンスの方法を取得するために、それは人々に直接見て作ることができる要素ノード、理解しやすいのことを知っている。しかし、ノードのパスが変更された場合、UIデザインの頻繁な変更に間違って行くが、このう:その上でセキュリティ機能を得る、のような問題点を見つけることがより困難であるパッケージ場合は特にひどいです

    // 間違ったメッセージにリンクされていないパッケージ化機能、
    パブリック 静的ゲームオブジェクトGetGameObject(変換から文字列検索)
    { 
        VARトランス= から、.Find(検索)
         IF (トランス)
        { 
            戻りtrans.gameObjectを; 
        } 
        戻り NULL ; 
    }

  コードはリストで見ているとき、効率の観点から、シーケンスは、固有のオブジェクトIDであるので、むしろサブオブジェクトを変換し、検索を見つけるためのコードの使用の効率よりもプレハブ効率をシリアル化する必要がある場合効率のリストのルックアップ機能は同じです。 

  ここtagObjは自分で引用され、IDはオブジェクトがm_GameObject上に向いている、それはGUIDである必要があり連載を参照の内部です。効率性の観点からはわずかに良い、私は以前のプロジェクトでは子供の数千人に遭遇してきたので、ノード、および、取得したデータベースのデータの何千人も、次のオブジェクト・ノードを探して、それは単に酸っぱいクールな効率で、この需要は必ずリーに時間が、ああ、すべてのノードが辞書の参考文献に配置されている血液を変換していますレッスン...

  第二に、ストレージ・サイズ:

    それは、参照IDとして使用するプレハブの配列、増加ストレージサイズ実質的に固定された値場合だけでなく、他の圧縮および包装後に、実際の空間は非常に小さく、それは熱的に、より多くのリソースとすることができるようになります。

    コードはC#で書かれている場合は、文字の内側(「XXX / OOO」)を検索し、過剰なコードによるプロジェクトだけでなく、年末には複数の文字列にプログラムを引き起こしているため、ひどいである、静的フィールドに配置されますパッケージが大きすぎる、私たちは本当にIOS 50デュオM単一のDLLの問題上で遭遇は限られ...もちろん、単にリソースとしてのLuaで書かれた言葉は、あなたがバイナリにコンパイルすることができれば、あなたはすべてのLuaを圧縮することができます。しかし、一般によると、ケースのID、内より「XXX / OOO」の文字は通常より長く、特に深いUIレベルでは、中国はさらに悪化していたとき。

 

  我々はLuaのがあると、あなたは誰が書き込みを行くためにわざわざシリアライズを使用した場合のLuaの使用で、C#との違いはありませんので、あなたは?単に牽引トラブルをコード検索の多くを書くために喜んで開発者にそれらを求める、またはコード...それは本当に民俗法の例外よりも牛の希少なユニティ公式機能です。

  これは、そのシリアライズを表示され、本当に簡単で効率的なだけでなく、省スペース、主な問題は、このようなtagObjと呼ばれる私たちの変数として、後のメンテナンスである、オブジェクト名は、人々は、いくつかの中で、名前に全く関連性のキューブを挙げることができる作られます参照が失われた場合、予測できない状況下であっても、元の作成者は、状況が参照されるかわからないオブジェクトは、例えば、上記成分にコメントを追加し、同様に多くの私たちは言葉の二つのモードを組み合わせることができます: 

  まあ、はい、そこに優れています。 

  System.Diagnostics.Conditionalが同じリストに追加されていない、とエディタであなたがGetCustomAttributesにより取得することができ、条件コンパイルするコンパイラによると、それは非エディタでちょうどコメントであるかどうかを決めることができ、その有用性は大きいです: 

  チェックシーケンスエディタの1オブジェクトは、自動的にLOADPATHに見ることによって得られ、失われた属性を失っていません。

  2. 在编辑器下检查序列化对象跟 loadPath 的对象是不是一致, 检查数据正确性.

  这些看似简单的功能, 在发布版本之前可能救不少人的命呢, 避免了每次抓人去祭天. 通过这个应用方法添加了一些信息, 并能提供上述功能支持.

 

测试一下 : 

 

-------- 编辑器 --------

 

-------- 发布后 --------

おすすめ

転載: www.cnblogs.com/tiancaiwrk/p/12103158.html