Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011
Sign in to follow this  
dispatcher

Class Array

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Count ist zzt immer 1 und wird vor dem Aufrufen der Funktion überprüft ob ich die Array Länge Überschreite.

 

Ich mach es jetzt mitm List neu grad wollte Performance sparen, aber hat schon seine Vorteile List man kann dort leichter sortieren.

 

Und es gibt keine Leeren Lücken.

Share this post


Link to post
Share on other sites

Was hat denn die Arraylänge gerade damit zu tun? count ist eine Variable, dessen Wert du an einer Stelle von einer anderen abziehst und an einer anderen Stelle auf einen anderen Wert draufrechnest.

Share this post


Link to post
Share on other sites

Aso, ja sorry da dachte ich schon wieder weiter meinte zB.: Es gibt 4 Plätze maximal und net mehr.

 

Wie gesagt count ist zzt immer 1.

Reintheoretisch müsste das überschrieben werden, es passierte aber nix.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×