Jump to content
Unity Insider Forum

Zuweisungsproblem


KaBau

Recommended Posts

Sorry, aber ich verzweifle gerade an einer Grundlage:

float instScaleMin;
float instScaleMax;
[Range(1, 4)]
public int stageNumber;
[Header("Stage 1")]
public float instScaleMinS1;

void Start()
    {
        if (stageNumber == 1)
        {
            instScaleMin = instScaleMinS1;
            instScaleMax = instScaleMinS1++;
        }
}

Im Inspector habe ich der Variable "instScaleMinS1" den Wert 0.8 gegeben.
Im Inspector habe ich der Variable "stageNumber" den Wert 1 gegeben.

Ich wollte:
- die Variable "instScaleMin" mit der Variable "instScaleMinS1" gleichsetzten = 0.8
- die Variable "instScaleMax" um den Wert 1 gegenüber der Variable "instScaleMinS1" erhöhen = 1.8

Es passiert im Inspector (nachdem ich alle Variablen auf public gesetzt habe):
- die Variable "instScaleMin" erhält den Wert 0.8 = genau so gewollt
- die Variable "instScaleMax" erhält den Wert 0.8 = nicht gewollt
- die Variable "instScaleMinS1" wurde gegenüber meiner manuellen Eingabe auf 1.8 geändert = verstehe ich nicht.

Wo liegen meine Fehler?

Edit:
Alternativ hatte ich

instScaleMax = instScaleMin++;

probiert um die Variable "instScaleMax" nach dem gleichsetzten der Variable "instScaleMin" mit der Variable "instScaleMinS1" um dern Wert von 1 zu erhöhen.

Nun passiert folgendes im Inspector:
- die Variable "instScaleMin" erhält den Wert 1.8
- die Variable "instScaleMax" erhält den Wert 0.8
- die Variable "instScaleMinS1" bleibt auf der manuellen Eingabe von 0.8 geändert

Grundsätzlich habe ich nun die beiden Werte 1.8 und 0.8 um diese beim Befehl "Random.Range" zu nutzen, aber nach meinen Verständniss werden diese Werte vertauscht ausgegeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

 wenn du willst, dass 'instScaleMax' gleich 'instScaleMinS1 + 1' ist, dann würde ich das auch einfach so hinschreiben ^^

 

Wenn du willst, dass der Wert von 'instScaleMinS1' um eins erhöht wird und danach zugewiesen wird, musst du das '++' als Präfix schreiben.

https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/operators/increment-operator )

So wie du es momentan hast, mit '++' als Postfix, wird der Wert zugewiesen, und danach um 1 erhöht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, dass war mir noch nicht so bewusst, dass es einen so großen Unterschied macht, wo die ++ stehen. Mir war auch noch nicht bewusst, dass ich hier gleich die rechte Variable abändere. Ich dachte immer, dass ich nur auf den Wert der rechten Variable zurückgreife. Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...