Jump to content
Unity Insider Forum

Strooja0108

Members
  • Content Count

    51
  • Joined

  • Last visited

Everything posted by Strooja0108

  1. Ich hoffe das erklärt es besser.Wenn jemand noch eine Idee hat wäre ich für Hilfe sehr dankbar.
  2. Hey vielen dank für die ausführliche Antwort. Du hast recht das ich eine Deep copy brauche.Das beispiel mit dem restaurant ist nicht genau das was ich machen möchte.Es sollte nur darstellen was ich ungefähr vor habe. Du hast auch recht das es Sinn machen würde, den größten Teil read only zu machen ,denn nur amount ist ein wert der sich verändert. Ich habe aber immer noch nicht so ganz verstanden wie ich FoodList in DeliveryList erstelle.Das mit dem Copy erstellen oder per Hand die Liste füllen erzeugt immer Fehler das das Object nicht da ist zum Beispiel. Um nochmal genauer zu erklären was ich machen möchte.Ich habe einmal diese FoodList wo ich die Mengen der Gerichte verändere. Diese Liste möchte ich dann in DeliveryList schreiben und zusätzlich angeben an welchem Tag die Delivery kommt. Wenn dieser Tag dann erreicht ist wird die DeliveryList in eine neue Liste "FridgeList" addiert. Im Prinzip so wie wenn man etwas Online bestellt ,wartet bis es da ist und es dann in den Kühlschrank legt. Ih habe das jetzt mal probiert, an der Stelle wo ich vorher die clonedList erstellt habe: for (int i = 0; i < FoodDrinkList.FoodList.Count; i++) { newDelivery.FoodList.FoodList.Add(FoodDrinkList.FoodList); } Ich bekomme dann aber diesen Fehler: NullReferenceException: Object reference not set to an instance of an object BuyFoodScript.BuyButton () (at Assets/Scripts/BuyFoodScript.cs:151) Es bezieht sich auf die Zeile in dem for loop Ich habe jetzt auch das hier nochmal ausprobiert aber das klappt auch nicht. Delivery newDelivery = new Delivery(); FoodDrinkList.Fooddetails newFood = new FoodDrinkList.Fooddetails(); for (int i = 0; i < FoodDrinkLists.FoodList.Count; i++) { newFood.foodname = FoodDrinkLists.FoodList.foodname; newFood.price = FoodDrinkLists.FoodList.price; newFood.id = FoodDrinkLists.FoodList.id; newFood.happiness = FoodDrinkLists.FoodList.happiness; newFood.hungry = FoodDrinkLists.FoodList.hungry; newFood.picture = FoodDrinkLists.FoodList.picture; newFood.slots = FoodDrinkLists.FoodList.slots; newFood.unlocked = FoodDrinkLists.FoodList.unlocked; newFood.energy = FoodDrinkLists.FoodList.energy; newFood.amount = FoodDrinkLists.FoodList.amount; newDelivery.FoodList.FoodList.Add(newFood); } Es kommt der gleiche Fehler.Ich denke das Problem ist das ich verschiedene Variablen gleichzeitig adden möchte. Weiß jemand wie man eine Klasse mit unterschiedlichen Werten zu einer Liste hinzufügt??
  3. Hallo Leute, ich habe kleines Problem woran ich gerade verzweifel und hatte gehofft Ihr könnt mir vielleicht helfen. Stellt euch vor ihr geht in ein Restaurant und bekommt die Karte . Auf dieser Karte kreuzt ihr dann an was ihr haben möchtet und gebt die Karte dann zurück an den Kellner als Bestellung.Sowas würde ich gerne umsetzen Dafür habe ich eine Liste mit attributen für jedes gericht : public class FoodDrinkList : MonoBehaviour { [System.Serializable] public class Fooddetails { public string foodname; public Sprite picture; public int id; public int price; public int happiness; public int energy; public int hungry; public int amount; public int slots; public int unlocked; } public List<Fooddetails> FoodList; } Diese liste "FoodList" verändere ich dann in dem ich sage wie viel ich von jedem Gericht haben möchte und dann möchte ich per Button klick diese FoodList in eine andere Foodlist schreiben public FoodDrinkList foodDrinkList; [System.Serializable] public class Delivery { public FoodDrinkList FoodList; public int deliveryday; public int deliveryhour; public int readytopickup; } public void BuyButton() { Delivery newDelivery = new Delivery(); List<FoodDrinkList> clonedList = new List<FoodDrinkList>(foodDrinkList); //Hier habe ich versucht die Liste zu klonen.Ich habe aber garkeine Idee wie ich die liste kopieren kann newDelivery.FoodList.FoodList.Add(clonedList); newDelivery.deliveryhour = DataTimescript.hourtimer + 3; DeliveryList.Add(newDelivery); } Es funktioniert alles bis auf den Teil mit dem kopieren der Foodlist in die neue Delivery.Foodlist.Foodlist Hat da jemandeine Idee?
  4. Danke Sascha auf dich ist mal wieder verlass. Da meine Animationen alle einzeln gezeichnet sind und ich auch nie welche miteinander verbinden,waeren die normalen Animationen vermutlich die Loesung. Aber ich denke auch ich sollte bei der neueren Variante bleiben und werde es versuchen mit den Events zu loesen.Ist aber echt komisch das du von dem Problem noch nie gehoert hast.Ich hatte zum Beispiel eine Animation wo ein Panel kleiner animiert wird und danach erst das Script weitergehen soll.Ich habe das Event auf den letzten Frame erstellt und hatte immer mal wieder Probleme, dass es da haengen geblieben ist.Jetzt habe ich das Event auf die letzten beiden Frames gelegt und es laeuft schon stabiler. Hatte sonst schonmal jemand damit Probleme? Also ich habe jetzt doch noch einen Thread mit Infos gefunden und scheinbar haben mehrere das Problem mit den Events.Also falls jemand hier das selbe Problem hat einfach mal in diesem Thread nachgucken. https://forum.unity.com/threads/animation-event-not-triggering.456138/
  5. Hi Leute , wie schon im Thema geschrieben wuerde ich gerne wissen wie man am besten ueberpruefen kann ob eine Animation fertig ist. In meinem bestimmten Fall soll erst ein Animationsclip abgeschlossen sein,bevor es im Script weiter geht. Ich habe es erst mit dem Tipp von @Sascha aus diesem Thread probiert (https://forum.unity-community.de/topic/12681-animation-fertig/ ). Allerdings habe ich dann festgestellt das es sich bei mir scheinbar nicht um eine Animation sondern einen Animationsclip handelt(ich weiss nicht was der unterschied ist). Deshalb steht mir .isPlaying nicht zur Verfuegung. Danach habe ich es mit einem Animation event am Ende der Animation probiert. Ich rufe einfach eine Funktion auf die eine Variable auf 1 setzt.Wenn Sie auf eins ist wird das Script fortgefuehrt. Das klappt jedoch nur manchmal .Kann es sein das manchmal Frames uebersprungen werden und man deshalb das event am besten auf mehrere Frames am Ende einer Animation legt? So das sind die Techniken die ich bis jetzt ausprobiert habe.Habt ihr da noch andere bessere Ideen um das Problem zu loesen?? Bin fuer jeden Tipp dankbar.
  6. Hi Leute, ich habe eine vermutlich nicht besonders kluge Frage.Ist es moeglich aehnlich wie in Photoshop zwei Bilder miteinander zu mixen? Zum Beispiel habe ich ein Objekt mit einem Sprite und moechte darauf ein zweites Objekt mit einem Sprite legen welches komplett schwarz ist. Jetzt moechte ich aehnlich wie in Photoshop das schwarze Bild in das untere Bild ineinanderkopieren. Also die Sachen die man in Photoshop mit Ebenen machen kann.Gibt es solche "mix" moeglichkeiten wie in Photoshop? Ich habe bis jetzt nur gefunden das man die Transparenz aendern kann.
  7. Hi Sascha sorry für die späte Antwort.Also zurzeit habe ich einfach eine animation für den grossen schwarzen Kasten erstellt.Die anderen kleineren Kästen sind einfach als childs unter dem kasten und sollen sich am besten richtig mit animieren.Für die Animation des Kastens habe ich Anchored Position und Size Delta animiert.Also zurzeit habe ich garnichts programmiert dafür. Jeder kleine Kasten hat seine anchor punkte auf seinen Ecken. Komischerweise funktioniert es ja auch.Aber wenn ich das Bild eines kleinen Kastens ändere.Selbst wenn es genau das gleiche ist wie vorher ,skaliert das Bild nicht mehr mit. Obwohl die anchor punkte richtig mit skalieren.
  8. Hi Leute hat denn niemand eine Idee wie das funktioniert? Hab jetzt versucht die anchor punkte von jedem kleinen viereck auf die ecken des jeweiligen vierecks zu legen.Das funktioniert wunderbar bis ich das image in so einem viereck ändere.Obwohl das image genauso gross ist wie das vorherige funktioniert es nicht mehr.Als ob die anchor punkte resetet werden
  9. Hi Leute, ich bins mal wieder und ich komme mal wieder mit einem Problem. Ich habe ein Parent Objekt mit einem Canvas Render,Image und RectTransform welches kleiner animiert wird. Als Child Objekte habe ich einige andere Objekte ebenfalls nur mit einem Canvas Render,Image und RectTransform Component. Wenn sich jetzt mein Parent Objekt von gross (Bildschrim füllend) zu klein unten rechts in der Ecke animiert sollen sich die child Objekte ebenfalls vernünftig mit skalieren. Das klappt allerdings nicht. Könnt ihr mir sagen wie ich sowas einstellen kann. Ich habe zwei Bilder angehangen auf denen ihr seht wie es am Anfang aussieht(Example1) und am Ende aussehen soll(Example2).
  10. Ich wuerde es gerne auf einem kleinen Panel laufen lassen. Also in einem 2d Spiel in einem Teil des Bildes.
  11. Hi Leute, ich bins mal wieder. Ich wuerde gerne verschiedene Videos in mein spiel implementieren und suche dafuer die beste und perfomance aermste Loesung. Ich habe es schon mit dem" video player " versucht und hab die clips in einer liste gespeichert. Das hat einigermassen gut geklappt allerdings gab es immer eine verzoegerung bevor ein video anfing zu laufen.Ich denke aber das kann man schnell beheben. Problem ist ich moechte teilweise videos hintereinander laufen lassen ohne das man sieht das es zwei unterschiedliche videos sind.Deshalb ist jede verzoegerung ein problem.wuerdet ihr die videos sonst einfach in einzel bilder reinladen und als gif oder animation erstellen ?? Bin fuer jeden idee dankbar.
  12. ah okay. Ich bin nicht so tief in der Materie drin.Ich dachte da ich vielleicht 30 Dialoge in meinem Spiel habe reicht es wenn ich das in Scriptable Objects hinterlege. Vielleicht gucke ich mir das mit den xml Dateien mal an. Das ist bestimmt ne absolut dumme Frage aber wenn ich das in xml Dateien schreibe, kann der Spieler die Datei auf seinem Smartphone oder Computer nicht einfach veraendern?
  13. Wie du schon schreibst ist das mit den XML Files etwas muehsamer und meiner Meinung nach auch unuebersichtlicher aber ich glaub jeder sollte es so machen wie es ihm passt und wie er es braucht. Wollte das nur mit dir teilen weil du scheinbar auch gerade im Thema bist. Ich finde es sehr uebersichtlich mit den scriptableObjects und habe es auch erweitert das ich angeben kann wie schnell der Text dargestellt wird, ob in einer Sprechblase oder einem Window und so weiter.
  14. @Thariel Ich bin auf youtube fündig geworden . Das Tutorial erklärt meiner Meinung nach eine schön saubere Variante um Dialoge zu ereugen und zu verwalten.
  15. okay also geht es nicht das ich kein Feld erstelle sondern einfach auf das Asset zugreife ohne irgendwas zu erstellen oder im Inspector zuzuweisen,richtig?
  16. ah ok ich denke wir reden von zwei unterschiedlichen Sachen. Ich mache das exakt so wie du gesagt hast. mit der Zeile : DialogShow.StartConversation(DialogList[0]); Rufe ich das script auf welches mein sciptable Object dann ausgeben soll. Mein scriptable Object sieht ziemlich aehnlich aus wie dein Beispiel nur mit ein paar anderen variablen noch.Aber ich speicher auch den Text einfach in nem string array.So jetzt habe ich in meinem scriptable Object meine ganze conversation stehen. Aber wie uebergebe ich nun diese Conversation zu dem script "DialogShow" welches dafuer zustaendig ist das scirptable Object auszulesen und zu verarbeiten. Du schreibst ja selbst " Du musst das richtige ScriptableObject von Inspektor bis hinzu diesem Punkt leiten. " GENAU das ist es .Ich moechte das aber nicht vom Inspector dahin leiten sondern aus meinen Assets heraus. So das ,vereinfacht dargestellt, mein Eventscript nachher so schoen uebersichtlich aussieht. if(time==12) DialogShow.StartConversation(DialogMittagessen); (das in Klammern muss halt ein Verweis auf das scriptable Object in meinen assets sein) if(Geld==0) DialogShow.StartConversation(DialogkeinGeldmehr);
  17. mh ok und wie weiss, in deinem Beispiel, unity dann das ich Dialog5 haben will und nicht Dialog1? Ohne irgendwas im Inspector zu machen.Ich hab halt nicht nur einen Dialog sondern 30 Stueck die ich ueber ein Script je nach Situation aufrufen moechte.In der DialogList habe ich zurzeit alle 30 Dialoge die es gibt, damit ich darauf Zugriff habe. Ich wuerde liebend gern auf diese globale Liste verzichten,deswegen fragte ich wie der command dafuer ist ein sciptableobject(das ja keinem GameObject zugewiesen ist) aus den Asset heraus aufzurufen und zu uebergeben.
  18. Hey danke für die Hilfe.Habe es soweit hinbekommen. Jetzt würde ich allerdings gerne je nach Event ein bestimmten Dialog übergeben.Zurzeit mache ich das so zum Beispiel. DataDialogShow.StartConversation(DialogList[0]); Wobei ich so natürlich im Inspektor jedes SciptableObject in das array schieben muss und es über Nummern aufrufe. Ich würde aber gerne das ScriptableObjekt beim Namen aufrufen und ohne das ich es in irgendein Array speichern muss.Ist das irgendwie möglich?
  19. Hey vielen Dank für deine Antwort.Das ist ist eine interessante Lösung aber ich würde es gerne in einer art array oder halt scriptable objekt lösen damit ich alles schön im Überblick habe. Ich könnte natürlich anstatt scriptable objects auch einfach gameobjects nehmen .Allerdings brauche ich ja nur verschiedene Objekte um Daten zu speichern deshalb halte ich GameObject für überflüssig.Würde halt gerne jede Conversation in ein Object speichern. Hat vielleicht sonst noch jemand einen Voschlag?
  20. Hi Leute, ich bin mal wieder hier mit einer weiteren Frage. Ich wuerde gern ein einfaches Dialogsystem bauen,welches unterschiedliche Dialoge beinhaltet. Dafuer habe ich mir ueberlegt. Ich habe ein Script ueber dem ich das Dialogscript starte.In diesem Startscript steht einfach etwas wie DialogStart(scriptableobject1); oder DialogStart(scriptableobject2); Je nach Situation halt ein andere Dialog. In dem ScriptableObject moechte ich zum einen den Text der gesprochen wird festhalten und zum anderen weitere Informationen wie zum Beispiel wer den Text gerade spricht und ein passendes Bild zur Person. In dem aufgerufenden Script mit der methode DialogStart() moechte ich dann die Daten weiterverarbeiten. Bis jetzt habe ich immer nur gesehen das ScriptableObjects im Inspector zugeordnet wurden. Ist es auch moeglich ein ScriptableObject als Ubergabeparameter zu verwenden ? Und wenn ja wie geht das und wie greife ich dann auf die einzelnen Parameter des scriptableObjects in einer methode drauf zu? Es waere klasse wenn da jemand einen Ratschlag hat
  21. Hey tut mir leid das ich den Thread nochmal aufmachen muss aber irgendwie funktioniert es nicht so wirklich bei mir. Ich habe einige Sprites und einige Buttons zum Beispiel. Das Problem ist das ich die Sprites mit dem SpriteRenderer sortiere. Die Buttons haben aber keinen SpriteRenderer, wie kann ich also ALLE Arten von Objecten zusammen anorndnen in der Z Achse? Einige Buttons müssen zum Beispiel zwischen zwei Sprites angezeigt werden. Andere wiederum müssen nach ganz vorne in den Vordergrund. Es wäre super wenn mir da jemand helfen könnte
  22. Also ich hab rausgefunden das es bei meinem Sprite daran lag das ich es mit .transform bewegt habe und dafuer ein Vector2 benutzt habe und nicht Vector3. Dadurch wurde die Z achse auf -3300 gesetzt. Deshalb war es immer im Vordergrund.Ich habe das gleiche Problem auch noch mit anderen Elementen ich werde erstmal gucken ob ich selber herausfinde woran es liegt.
  23. mhh okay kann es sein das bestimmte Components diese Reihenfolge veraendern? Ich habe zum Beispiel ein Sprite das ich als Character benutze und das soll natuerlich hinter aufgerufende Menues laufen aber es ist immer davor egal wie weit ich den character nach oben in der hierarchie packe. Auch bei einzelnen anderen Elementen hab ich das Problem. Z.b habe ich eine Healtbar und an beiden enden ein Emote . Die Healtbar is an der richtigen Position die Emotes jedoch nicht. Deshalb hatte ich gehofft das es vielleicht noch einen anderen schoeneren Weg gibt.Auch weil ich dachte ich koennte die Hierarchie so anlegen das sie uebersichtlich ist.
  24. Hallo Leute, ich habe da mal eine Frage, wie kann ich Buttons, images , Textfelder... vernuenftig anordnen? Dabei geht es weniger um die X,Y Achse sondern eher darum was im Vordergrund und Hintegrund ist. Ich habe irgendwo gelesen das es auf die Hierarchy der Objekte ankommt. Das funktioniert bei mir aber nicht. Gibt es noch einen anderen Weg einfach einzustellen welches Objekt vor dem anderen liegt? Vielleicht ein bestimmtes Component? Ich bin dankbar fuer jede Hilfe
×
×
  • Create New...