Jump to content
Unity Insider Forum

Class Array


dispatcher

Recommended Posts

Hallo,

 

Ich habe ein kleines Problem. Ich baue gerade ein Invetar dazu versuche ich von Storage auf -> Equipment eine Waffe zB zu überschreiben jedoch funktioniert das nicht und ich weiß nicht warum.

 

Ist ansich Fehlerfrei hab aber keine Ahnung warums net passt und es wird auswärtig auch nirgendswo überschrieben.

 

for (int toIndex = 0; toIndex < to.Length; ++toIndex)
			    {
				    if (to[toIndex].Item_Rarity == cannon.Item_Rarity && to[toIndex].Item_Order == cannon.Item_Order)
				    {
					    to[toIndex].Item_Quantity += count;

					    if (from[fromIndex].Item_Quantity - count <= 0)
					    {
						    from[fromIndex] = ItemsHolder.main.All_Cannon_Items[0];
					    }
					    else
					    {
						    from[fromIndex].Item_Quantity -= count;
					    }

					    Debug.Log(to[toIndex].Item_Quantity); //-> sollte 2 sein ist aber 3
					    Debug.Log(from[fromIndex].Item_Quantity); //-> sollte 4 sein ist aber 3
					    c.Add(to);
					    c.Add(from);
					    return c;
				    }
			    }

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[CreateAssetMenu(fileName = "Canon", menuName = "Create new ScriptableObject", order = 1)]
public class Cannon : ScriptableObject
{
   public Item.Rarity Item_Rarity;
   public int Item_Order;
   public int Item_Quantity;
   public string Item_Name;
   public int Item_BaseDamage;
   public int Item_Precision;
   public Texture Item_Icon;
}

 

Wäre sehr nett wenn mir jemand sagen könnte wo der Fehler liegt.

Danke

0F00

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Variablennamen sind ja etwas kryptisch, aber was ich da sehe ist, dass count größer sein kann als from[fromIndex].Item_Quantity, und das scheint keine sonderlich sinnvolle Idee zu sein.

Da man in deinem Code nicht sieht, woher der Wert von count kommt, wird alles weitere wohl schwierig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verstehe deinen Codeschnipsel auch einfach nicht.

Du hast da einen fromIndex, der bleibt während der gesamten Zeit gleich.

toIndex iteriert über das to-Array und addiert dann count auf einen Wert im Array und eventuell zieht er count woanders ab.

Da deine Variablennamen auch relativ unsprechend sind ist mir echt nicht klar, was du da machen willst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du haufn for Schleifen besitzt. Musst du diese auch iwie nennen und from und to ist jetzt nicht so abwiegig. Weil ich will ja vom Inventar oder so raus in den Spieler rein.

 

Und nein das mach ich alles nicht ich weiß nicht warum aber es ist so.

Habe count zu Quantity dazugezählt und sie zurückgeben, nachdem die Funktion fertig mit ihrem Ablaufen war. War nurnoch die alte Anzahl der Quantity abgreifbar hört sich komisch an ist es jedoch auch.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alter, was?

Schlechte Variablenbezeichnungen sind nichts schlimmes, man muss nur lernen sie intuitiver zu benennen, sodass jeder verstehen kann was du da machst.

Jetzt kommt aber noch dazu das es schon schwierig genug ist dich zu verstehen. "Weil ich will ja vom Inventar oder so raus in den Spieler rein" von der zweideutigkeit dieses Satzes abgesehen du willst "raus in den Spieler rein" oder auch "raus...rein" - Bitte was?

 

Ein Tipp, beschreib GANZ GENAU was du machen möchtest und wie dein Lösungsansatz ist. Dann beschreibe was nun der Fehler ist. Und bitte les deine Texte zwei oder dreimal durch bevor du sie postest. Dann sind wir auch in der Lage dir zu helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...