問題はこれです:私は自分のコードに状態を持っています。私はそれらを地域に分け、いくつかの条件でそれらを有効または無効にしたいと思う。このコードは、LateUpdateというループ関数のUnity関数内にあります。ブーリアンや列挙型を使用する代わりに、プロセッサ時間を節約するためにこれを実行したいと思います。 できますか?もしそうなら、どうですか? 追加します。 info:これを実行時に無効にする必要があります。このスクリプトは、gifを再生する画像シーケンスプレーヤーです。ウォームアップパートとループパートがあります。私はboolと書くことができますが、私はプロセッサー時間を節約する必要があると言いました。これはモバイルゲームになるためです。c#状態でコード領域を無効にする
いくつかのコード:あなたのような
void LateUpdate()
{
if (warmUp)
{
currentImageIndex = Mathf.RoundToInt(Time.time * frameRate);
currentImageIndex = currentImageIndex % spriteSheet.Length;
spriteRenderer.sprite = spriteSheet[currentImageIndex];
warmUp = false;
}
if (updateEnabled && !warmUp)
{
switch (playMode)
{
case PlayMode.order:
currentImageIndex = Mathf.RoundToInt(Time.time * frameRate);
currentImageIndex = currentImageIndex % spriteSheet.Length;
spriteRenderer.sprite = spriteSheet[currentImageIndex];
break;
case PlayMode.random:
updateEnabled = false;
StartCoroutine(RandomizedPlay());
break;
}
}
}
'if'ブロック内にリージョンを置くのは間違っていますが、必要に応じて変数を設定したり解除したりするだけです。 '_doSection1'が' false'なら単純な 'if(_doSection1){...}'には実質的に0のオーバーヘッドがあります。 –
デザイン上の欠陥のように聞こえます。リージョンはコンパイラー文であるため、実行時には設定できません。しかし、単純な 'if'やループ文を使わないのはなぜですか? Cosniderはいくつかのコードを示します。 – HimBromBeere
私は地域atmを使用しません:Dは方法を知らない... もし私が – agiro