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

    536
  • Joined

  • Last visited

  • Days Won

    10

Djeurissen last won the day on September 25

Djeurissen had the most liked content!

Community Reputation

102 Excellent

About Djeurissen

  • Rank
    Advanced Member
  • Birthday 11/14/1995

Contact Methods

  • Skype
    djeurissen0

Profile Information

  • Gender
    Male
  • Location
    Zuhause

Recent Profile Visitors

3,091 profile views
  1. 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.
  2. 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.
  3. 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
  4. 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.
  5. 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
  6. 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.
  7. 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.
  8. 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...
  9. 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...
  10. Pfad

    Warscheinlich suchst du sowas wie Splines. Das hier erklärt es ziemlich gut: http://catlikecoding.com/unity/tutorials/curves-and-splines/
  11. Karten mischen per Script

    kartenspeicher = kart [i]; //Merke dir die aktuelle Karte kart [i] = kart [zufall]; // Setze an die Stelle von der aktuellen Karte irgendeine zufällige Karte kart [zufall] = kartenspeicher; // Setze an die Stelle von der zufälligen Karte die aktuelle Karte die wir uns gemerkt haben Das was oben beschrieben ist, macht nichts weiter als deine aktuelle Karte i mit einer zufälligen Karte zu tauschen. Dementsprechend kann nichts doppelt vorkommen oder verloren gehen.
  12. Optimiertes Erstellen eines großen Suchbaums

    Hmm, vielleicht reden wir aneinander vorbei... Ich verstehe deine Vorgehensweise so: Du baust ganz am Anfang des Spiels den Suchbaum auf und nutzt diesen dann um später Lösungen zu finden. Verstehe ich das richtig? Falls ja, was passiert wenn der Suchbaum zu groß wird? Dann wirst du ja sehr warscheinlich für den ersten Zug nicht den kompletten Suchbaum durchsuchen sondern nur eine Näherungslösung nutzen. Soweit sogut jetzt kommt der 2te Zug. Wir haben den ersten Zug bereits hinter uns d.h die erste Ebene von unserem Suchbaum wird nicht mehr benötigt, was machst du also damit? Das gleiche gilt für den 3ten Zug 4ten Zug etc etc etc. Was ist wenn du nicht genug Speicherplatz hast um den Suchbaum zu speichern? Wie entscheidest du welche Daten gelöscht werden und welche nicht. Was ich einfach nicht kapiere warum zur Hölle sollte man jemals auch nur in Betracht ziehen den GESAMMTEN SUCHBAUM zu generieren. Das wird nie und nimmer klappen. Es gibt einen Grund warum für sowas Zufallssuchalgorithmen entwickelt wurden.
  13. Optimiertes Erstellen eines großen Suchbaums

    Irgendwie versteh ich das Problem nicht. Warum willst du das komplette Spiel in irgendeiner Datenstruktur festhalten was genau bringt dir das? Den Code den ich dir gezeigt habe kann man ja ganz leicht erweitern, einfach Bewertungsfunktion einbauen, Zieltest etc.. Was du versuchst ist wenn das Spiel beginnt alle möglichen Züge zu generieren. Und was dann? Was machst du mit den Zügen, du wirst niemals genug Zeit haben alle zu generieren. Selbst wenn du die Zeit dafür hast musst du dann nochmal über alle drüberlaufen und auswerten. In dem Fall wirst du aber niemals alle auswerten können d.h du hast wieder viel zu viel generiert. Ich habe mal ein Programm geschrieben was ganz Simpel ein Schieberätsel lösen kann und zwar exakt mit diesem Ansatz. Dafür habe ich niemals eine Datenstruktur Baum benötigt weil diese bereits implizit generiert wird. Wenn du wirklich eine Datenstruktur Baum haben willst dann gibt es da haufen Ansätze: Balancierte-Bäume (B-Baum, AVL-Baum), Binäre Bäume, selbst Heaps sind nichts weiter als Bäume. Die Bäume nutzt man aber nicht dazu irgendwelche Probleme zu lösen sondern schnell nach Daten zu suchen. Heaps suchen schnell nach dem größten Wert, Binäre Bäume finden in O(Log(n)) irgendwelche Werte, B-Bäume werden dazu genutzt um effektiv Daten zu suchen und zu speichern (Datenbanken) Und so weiter. Um zu verhindern das du immer Kopien erzeugen musst fällt mir eine einzige Lösung ein. Falls jemand was besseres hat immer her damit: public void SolveProblem(Schachfigur s) { s.Move(irgendwoHin); //Irgendwelche anderer Code s.Move(wiederZurück); }
  14. Optimiertes Erstellen eines großen Suchbaums

    Ok, deine Denkweise ist korrekt und die Bewertungsmethode/Lernformel ist genau der MinMax Ansatz. Was du allerdings falsch verstehst ist wie man einen Suchbaum aufbaut. Was viele Leute als "aufbauen" bezeichnen ist nichts weiter als der Programmfluss vom Algorithmus. public void Suchbaum(Problem p) { foreach(var action in p.GetActions()) Suchbaum(p.ApplyAction(action)); } Was macht der Code? Er geht durch jede Action und ruft sich rekursiv auf. Das ist Tiefensuche, wie du bereits erwähnt hast. Hier wird nur Methaphorisch ein Baum aufgebaut, es existiert aber niemals wirklich eine Datenstruktur Baum. public void Suchbaum(Problem problem) { Stack stack = new Stack(); stack.Add(problem.InitialState()); while(stack.IsNotEmpty()) { var newStates = problem.GetNewStates(stack.Pop()); stack.AddRange(newStates); } } Was macht der Code hier? Er generiert "Zweilenweise" alle neuen Zustände. Das nennt man Breitensuche. Auch hier wird ein Suchbaum aufgebaut, allerdings stellt man sich den auch hier nur wieder vor. Der oben gezeigte Code dient nur als Beispiel. Ich bezweifle das der auch nur ansatzweise funktioniert.
  15. Optimiertes Erstellen eines großen Suchbaums

    Warum genau erzeugst du überhaupt diesen Baum? Willst du einfach berechnen welchen Zug du nehmen sollst um zu gewinnen? Falls ja, ist das ein einfaches Min-Max-Problem https://de.wikipedia.org/wiki/Minimax-Algorithmus Und passend dazu um Performance zu spaaren Alpha-Beta-Suche https://de.wikipedia.org/wiki/Alpha-Beta-Suche
×