2017-04-03 15 views
0

私はを呼び出すつもりで、別のスクリプトから浮動小数点が呼び出されるたびにsettings.screenshotintervalsが呼び出されます。今私のコードは数学関数C#ユニティ

(scoreTeam1 + scoreTeam2 == settings.screenshotintervals * (1) | scoreTeam1 + scoreTeam2 == settings.screenshotintervals * 2 | scoreTeam1 + scoreTeam2 == settings.screenshotintervals * 3 | scoreTeam1 + scoreTeam2 == settings.screenshotintervals * 4 

は、これを入力してその数を毎回変え、この他を行うには、そのいずれかの簡単な方法はありますか?他のスクリプトには、人が値を変更できるスライダーがあります。

+3

ビット単位のORものは山車があり、平等がこれまでに起こるのだろう本当にそうである – BradleyDotNET

答えて

1

あなたは番号の範囲を生産し、間隔を掛けたこれらの番号のいずれかがあなたのスコアの合計を与えるかどうかを確認することができます

Enumerable.Range(1,4).Any(i => settings.screenshotintervals * i == scoreTeam1 + scoreTeam2) 

申し訳ありませんが、私は値が浮動小数点数であることを逃しました。

var totalScore = scoreTeam1 + scoreTeam2; 
var result = Enumerable.Range(1,4) 
     .Any(i => Mathf.Approximately(settings.screenshotintervals * i, totalScore)); 
+3

あれば本当にsuspicousが見えます(フローティング不正確): - @Evertsが述べたように、ここで最善の解決策は、値を比較するためのMathf.Approximatelyの使用となります。 Mathf.Approximatelyを使用すると役立ちます。 – Everts