2017-08-09 2 views
0

だから私はちょっと混乱している。Ressources.Load。私は実際にそれをかなり使用し、誰もが純粋な悪としてこの機能を見ているようです。このdocumentationでは、「使用しないでください」と書かれています。私はこれについてたくさん調べて、this postを見つけました。ほとんどの場合、Ressources.Loadは稀有な資産に対してのみ使用すると言います。そうでなければ、パフォーマンスは損なわれる可能性があります。私はRessources.loadの乱用だと思う。

これはなぜ「悪い」ものになるのか分かりますが、正直言って私の状況ではこれをどうして使わないのか分かりません。

私はレースあたりのカップルのカップルで〜10種類のレースでゲームをしていると言います。ユーザーはそのレースを選択してゲームを開始します。この時点で、Ressourceには普通のようです。他のものではなく、この特定のレースに関連するアセットだけをロードしてください...

また、多くの可能な環境を持つ戦闘シーンがあるとしましょう:冬、森、砂漠など)。繰り返しますが、私は戦っているもの以外のものをロードしたくありません。したがって、Ressources.Loadを使用することは完璧なツールのようです。いいえ?私はUnityや何について重要な何かを見逃していますか?

どうもありがとう

答えて

1

それはUnityが、それはそれは、シーン内のインスペクタで物事に接続されている参照のすべてをロードすることは事実です。一度あなたが現場にいたら、Unityのロードを止める方法はありません。 (後でアンロードすることはできますが、すでにすべてをロードすることはできましたが)ユニティの言葉の意味では、にダメージを与えた演奏は意味を持ちます。ダイナミックロードを行うと、再生中に遅れてしまう危険性があります。

使用しないでください。

この強い勧告はいくつかの理由のために作られている:Resourcesフォルダの

使用することは、きめの細かいメモリ管理がより 困難にします。

難しいことではありませんが、不可能ではありません。あなた自身で慎重にしているなら、メモリ消費量の少ない報酬を得ることができます。

リソースフォルダを不適切に使用すると、アプリケーションの起動時間が長くなり、ビルドの長さが長くなります。リソース の数が増えると、それらのフォルダ内の資産の管理は非常に困難になります。

あなたがシーン開始時に保存することができ、ロード時間を相殺し、増加した起動時間は、おそらくそれだけの価値があるので、それは助けにはできません。ほとんどのプレーヤーは私の意見ではスタートアップ時間に気にしません。

リソースシステムは、特定のプラットフォームにカスタムコンテンツを配信するためのプロジェクトの 能力が低下し、 増分コンテンツのアップグレードの可能性を排除します。 AssetBundle Variants は、デバイスごとにコンテンツを調整するユニティの主なツールです。

次に、リソースフォルダに汎用的に作用するものだけを入れます。

現代の別の方法は、あなたのゲームをシーンで構成し、LoadSceneMode.Additiveを使用して、あなたが1つ1つのものを得ることです。戦闘シーンのような大きなチャンクには適していますが、コンセプトの小さなもの(私はまだテクスチャのような大きなデータを含んでいます)を怠けても、私はまだResources.Loadを使用しています。ロード・ビルドを遅延させたのはAudioClipです。これは、オーディオデータのプリロードを選択解除することができます。

読み込みに興味がある場合は、詳細な読み込みプロセスとそのメモリ消費量をここに書きました。 https://gametorrahod.com/unity-texture-memory-loading-unloading-7054819e4ae8

関連する問題