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

Djeurissen

Members
  • Content count

    542
  • Joined

  • Last visited

  • Days Won

    11

Djeurissen last won the day on December 7

Djeurissen had the most liked content!

Community Reputation

103 Excellent

About Djeurissen

  • Rank
    Advanced Member
  • Birthday 11/14/1995

Contact Methods

  • Skype
    djeurissen0

Profile Information

  • Gender
    Male
  • Location
    Zuhause

Recent Profile Visitors

3,144 profile views
  1. Vector2 Werte in Grad umrechnen?

    Nutz einfach Vector2.Angle. Das gibt dir den Winkel zwischen zwei Vektoren. Der 1. Vektor ist (0, 1) und der 2. Vektor ist eben dein Vektor vom Input. Wenn du das ganze jetzt noch abhängig von nem Mittelpunkt haben willst rechne einfach Fingervektor - Mittelpunkt und pack das dann in die Methode
  2. GetComponents Frage

    Das was du machen willst ist weitaus komplizierter als man anfangs vermuten mag. Es ist ziemlich einfach Variablen aus Klassen auszulesen und diese Auszugeben. Jetzt will man diese Werte ja nicht einfach nur augeben sondern "hübsch" anzeigen. Das bedeutet nicht einfach nur die Werte anzeigen sondern z.B soll eine Zahl die Lebenspunkte darstellen, also erstellt man einen Balken dessen Länge abhängig von den Lebenspunkten ist. Sowas kann man aber nicht einfach so generalisieren, dafür nutzt man schon recht komplexe Systeme. Und meistens können diese Systeme auch noch viele Tücken haben. Vorallem wenn es daran geht das die GUI immer aktuell gehalten werden soll. Wenn du unzählige Variablen hast ist es extremst unperformant jeden Frame die Grafiken neu zu generieren weil evtl. sich ein Wert geändert hat. Viel sauberer wäre es wenn sich die GUI nur ändert wenn sich ein Wert ändert. Etc etc etc. Dafür gibt es dann in Unity schon solche Tools: https://www.assetstore.unity3d.com/en/#!/content/49004 Davon rate ich dir aber ab. Du bist noch ganz am Anfang und ich bezweifle das dir sowas wirklich weiterhelfen wird. Klar ist es toll Sachen dynamisch zu machen, aber das was du willst ist viel zu viel. Du wirst niemals soviele Variablen haben das du nicht in der Lage sein wirst die von Hand anzuzeigen. Dazu kommt wenn du deine GUI gut designst dann wird das auch immer weniger zum Problem. Einfaches Beispiel: Anstatt eine Riesenklasse zu schreiben die alles darstellt was du irgendwo in deiner GUI rumfliegen hast, schreib kleine Klassen. Diese kleinen Klassen bekommt dann eben die Variable/Variablen die du anzeigen möchtest und die GUI Elemente bei denne es angezeigt werden soll. public class CustomerDisplay { public Label NameLabel; public Label IncomeLabel; public Customer Data; public void OnUpdate() { NameLabel.text = Data.name; IncomeLabel.text = Data.income; } } Sowas kann man nun immer wiederverwenden, wenn du irgendwann mal einen Customer anzeigen willst kannst du diese Klasse wieder nutzen. Und du kannst mir nicht erzählen das du jemals soviele Variablen haben wirst das es zuviel Aufwand ist mal schnell eine Klasse zu schreiben die das ganze 1 zu 1 mappt.
  3. GetComponents Frage

    Ich verstehe noch nicht zu 100% was du möchtest. Klar irgendwelche Werte schön anzeigen. Aber warum genau? Willst du dem Spieler die Werte anzeigen oder einfach nur für dich? Weil wenn du dem Spieler die Werte anzeigen willst, dann wirst du sowieso niemals alle Variablen benötigen die eine Component hat. Wenn du die Werte sehen möchtest hast du bereits den Unity Inspector.
  4. GetComponents Frage

    Du scheinst etwas ganz Grundlegend falsch zu machen. Was genau versuchst du zu erreichen? Wie ich bereits erklärt habe kannst du nicht einfach Variablen von unbekannten Componenten auslesen. Das lässt der Compiler schon garnicht zu und selbst wenn würde es zur Laufzeit evtl. zu haufenweise Fehlern führen. Denn du kannst schlecht zur Laufzeit wissen was in der Component nun genau drin steht und genau das versucht die Fehlermeldung zu verhindern. Was versuchst du zu erreichen? Ich meine was willst du beim "auslesen" automatisieren? Wenn du es nicht erklären kannst gib uns ein Beispiel was du machen willst und was genau dich dann daran stört.
  5. GetComponents Frage

    Zu sagen das etwas nicht funktioniert, hilt uns nicht wirklich weiter. Ich weiß das dir zu 100% eine Fehlermeldung geworfen wird und die solltest du am besten hier posten oder versuchen vorher zu googlen was diese Fehlermeldung bedeutet. ExampleClass wurde von MonoBehaviour abgeleitet. Das widerrum irgendwann von Component abgleitet wurde. ExampleClass ec = new ExampleClass(); //Merke niemals new bei MonoBehaviours machen dient nur als Beispiel Debug.Log(ec.wert); // Funktioniert ist ja eine Variable vom Typ ExampleClass Component c = ec; // Funktioniert weil ExampleClass irgendwann mal von Component abgeleitet hat Debug.Log(c.wert); // Funktioniert nicht, wir wissen zwar das in c unsere ExampleClass steckt aber der Compiler hat davon keine Ahnung Debug.Log(((ExampleClass)c).wert); // Funktioniert weil wir dem Compiler sagen das in c eine ExampleClass steckt. Das nennt man auch casten D.h du kannst zwar alle Components von einem Objekt sammeln, aber der Compiler kann nicht wissen welche Klassen das nun sind. Du kannst also nicht einfach hingehen und auf werte zugreifen die irgendwo in irgendeiner Klasse mal irgendwann definiert wurden. Dafür musst du dem Compiler vorher sagen welche Klasse in der Variable ist. Wobei ich dir davon abraten würde das so zu machen. Sobald du die Reihenfolge deiner Components veränderst würde dein Code kaputt gehen (Weil deine ExampleClass nun nicht mehr an Index 1 sondern evtl. bei Index 10 liegt) Musst du denn umbedingt auf den Wert zugreifen und wenn ja warum?
  6. KI Items vergleichen und ausrüsten lassen

    Das klingt alles ganz toll aber geh es was ruhiger an. Klar soll die KI gut sein, aber ich würde dir empfehlen erstmal nur die basics zu implementieren und dann die restlichen Hauptfunktionen deines Spiels. Wenn du jetzt zuviel Arbeit in die super duper KI legst hast du am Ende die klügste KI aber kein Spiel in der du die KI wirklich testen kannst...
  7. Linie erzeugen

    Wenn wir mal davon ausgehen das deine Zeichnung akkurat ist, dann bedeutet das deine Objekte liegen immer in einer Ebene? Für diesen Fall: https://martin-thoma.com/how-to-check-if-two-line-segments-intersect/ Für den dreidimensionalen Fall gibt es aber genauso Lösungen: http://paulbourke.net/geometry/pointlineplane/ Beide Links nutzen aber einfach Lineare Algebra um das Problem zu lösen. So wie es scheint gibt es von Unity keine vorgefertigte Lösung.
  8. Objekt im Kreis bewegen und rotieren

    Erstmal ein paar Tipps: Du kannst deinen Code besser formatieren wenn du den CodeTag nutzt (Dieses zeichen: <>) Anstatt dir für alles boolean Variablen anzulegen kannst du auch sowas hier machen: void Update() { // Wurde eine Pfeiltaste gedrückt? if(Input.GetKey(KeyCode.LeftArrow)|| Input.GetKey(KeyCode.RightArrow)) { // Berechne den timeCounter float timeCounter = Time.deltaTime * speed; // Wenn die linke Pfeiltaste gedrückt wurde, invertiere den timeCounter if(Input.GetKey(KeyCode.LeftArrow) timeCounter = timeCounter * -1; // Hier kommt nurnoch dein Rotationscode etc } } Aber anstatt die Rotation selber zu berechnen, nutz doch einfach Unity. Vielleicht hast du es schon bemerkt aber du kannst in Unity Objekten Kinder zuordnen. Wenn nun das Parentobjekt rotiert wird, rotieren sich die Kinder relativ zum Mittelpunkt vom Parent. Das heißt: Wenn du ein leeres Objekt anlegst und dann deinen Balken als Kind zu dem leeren Objekt zuordnest kannst du deinen Balken drehen lassen indem du einfach das leere Objekt rotierst. Oder vielleicht noch anders ausgedrückt, in deine Skizze der Mittelpunkt ist das leere Objekt das einfach rotiert wird. Ich bin mir nicht ganz sicher wie du nun dein 2tes Problem löst aber ein Ansatz sollte folgendes sein: Du kennst die Rotation vom Parentobjekt. Versuch einfach mal deinen Balken um den exakt gleichen Wert zu rotieren. Evtl. kommt dabei bereits das gewünschte Ergebniss raus. Ansonsten musst du halt nur schauen um wieviel die Rotation falsch ist und das dann einfach ausgleichen.
  9. APK und Windows Export Daten fehlen

    2. Dinge: 1. Das ist ja ein neues Thema dafür sollte man am besten auch einen neuen Thread aufmachen. 2. Dein Code scheint ziemlich durcheinander zu sein, du versuchst gerade mehrere Lösungsansätze führst aber keinen zuende. Evtl. solltest du den Code vorher nochmal aufräumen bevor du den hier postest. Der XMLWriter erlaubt dir XML Dokumente zu schreiben. Das Problem dabei ist das es sehr umständlich ist das richtig hinzubekommen: https://www.dotnetperls.com/xmlwriter Du musst genau drauf achten wo du ein Element öffnest, schließt etc. Mit dem XMLDocument kannst du XML darstellen indem du Klassen wie XmlElement etc. nutzt. Vorteil dabei du musst nicht darauf achten wann du etwas schließt. Wenn du nun xmlDoc.Save aufrufst nutzt dieses warscheinlich den XMLWriter um die Daten zu speichern. Das Problem bei dir ist allerdings das du dem XMLDocument niemals die Elemente gegeben hast. Du hast zwar XmlElement's angelegt aber halt nicht zum Dokument hinzugefügt. https://msdn.microsoft.com/de-de/library/dw229a22(v=vs.110).aspx
  10. APK und Windows Export Daten fehlen

    Der Resourcenordner wird wie alles andere kompiliert und mit den Unity Daten ausgeliefert. Was genau dabei kompilieren heisst kann ich dir nicht sagen. Aufjedenfall sind diese Daten nicht mehr veränderbar, du kannst zwar Daten aus dem Ressourcenordner laden aber nicht mehr ändern. Was Torigas dir nun gezeigt hat ist die Variable Application.persistentDataPath. Dieser Pfad zeigt auf irgendeinen Ordner wo du sicher deine Daten ablegen kannst.D.h nimm diesen Pfad und leg dort deine XML Datei an. Diese kannst du dann auch ändern.
  11. APK und Windows Export Daten fehlen

    Das ist nicht möglich: https://forum.unity.com/threads/update-the-resources-folder-at-runtime.155173/ Dafür musst du wieder deine alte Methode nutzen, nur das du die Daten eben nicht mehr im RessourcenOrdner suchst
  12. APK und Windows Export Daten fehlen

    Soweit ich das richtig verstehe suchst du https://docs.unity3d.com/ScriptReference/Resources.Load.html Diese Methode lädt Daten zur Laufzeit aus dem Resourcen Ordner und sollte dementsprechend auch deine XML Datei finden.
  13. Ich lehne mich hier weit aus dem Fenster, da ich sowas noch nie gemacht habe. Aber kannst du nicht einfach ne Animation für die Deckkraft erstellen und die dann immer beim Ein/Ausblenden abspielen? Bzw. 2 Animation - eine fürs ein und eine fürs ausblenden. Oder halt die Animation einmal vorwärts und einmal rückwärts abspielen. Evtl. hilft das hier weiter: http://answers.unity3d.com/questions/780323/unity-ui-fading-canvaspanel.html In dem link oben wird dieser hier noch verlinkt: http://answers.unity3d.com/questions/864581/ui-canvasrenderer-setalpha-does-not-set-alpha-of-c.html?childToView=864600#answer-864600 Der 2 Link scheint wirklich das komplette Canvas auszufaden.
  14. Licht ght einfch aus???

    Ich mag den Pfeil, blöderweise hilft dieser Screenshot überhaupt nicht. Was wir brauchen ist die Inspector Ansicht von diesem Licht. Evtl. hat das Licht noch Skripts die wir nicht kennen, dann wäre der Code davon gut. Evtl. benutzen andere Skripts diesen Licht, dann wäre es gut auch diesen Code zu sehen. Evtl. hast du Einstellungen vorgenommen die was damit zu tun haben können. GIb uns irgendwas...
  15. Vermeiden von Casts

    Das würde ich nicht als gutes Zeichen ansehen. In den allermeisten Fällen bedeutet das nur das du dich nicht weiterentwickelt hast. Es gibt immer etwas was man noch besser machen kann. Nur mal so als Hinweis für die Leute die das hier lesen...
×