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

Mark

Members
  • Content count

    2,769
  • Joined

  • Last visited

  • Days Won

    138

Mark last won the day on August 22 2016

Mark had the most liked content!

Community Reputation

868 Excellent

About Mark

  • Rank
    Has Advanced Member
  • Birthday 04/23/1984

Profile Information

  • Gender
    Male
  • Location
    NRW

Recent Profile Visitors

8,614 profile views
  1. Optimiertes Erstellen eines großen Suchbaums

    Wenn du verschiedene Stellen hast wieso ist es denn dann ein Problem wenn da was eingetragen wird? Wenn das Problem das ist dass du irgendwo Add machen musst, dann kannst du dir eventuell die Datenstrukturen oder gar den Baum schon voroptimieren, wie genau müsstest du selbst herausfinden Um die Anzahl der Threads zu limitieren erstelle einfach nur eine begrenzte Anzahl an Threads, zB 1 Thread pro CPU Kern, gebe diesen Threads dann einfach vereinzelte Aufgaben (Berechne X) welche nacheinander abgearbeitet werden. Dafür eignen sich Tasks. Die mMn so nicht in Unity funktionieren, aber man kann sich ein kleines Tasksystem ja schnell selbst bauen. Erstelle X Threads. Pro Thread: Solange nicht abgebrochen: Warte bis vorhandensein von Aufgaben signalisiert wurde Thread nimmt sich aus gelocktes Set Y eine Aufgabe und verarbeitet diese Wenn nötig füge Aufgabe in gelocktes Set Y, signalisiere vorhandensein von Aufgaben Was für Codeausschnitte hättest du denn gerne?
  2. In C# wird auch nur der Wert kopiert, aber behind the scenes wird auch noch etwas anderes getan. Es wird eine versteckte Klasse generiert deren Instanz pro Methodenaufruf erstellt und weiterverwendet wird. In dieser Klasse werden nun alle Werte gehalten die für den Lambda Ausdruck relevant sind. In diesem Fall also die "node" Variable. Kurz und knackig: for (int i = 0; i < 5; ++i) DoSomethingInANiceThread(() => Print(i)); Generiert behind the scenes folgendes: internal class A { public int i = 0; } for (A instance = new A(); instance.i < 5; ++instance.i) DoSomethingInANiceThread(() => Print(instance.i)); Mr 3D: Sorry, hatte ganz überlesen dass du sowas schon geschrieben hast.
  3. Der Wert der Variable node wird ausgewertet wenn der Thread beginnt und anfängt zu arbeiten. Da wir es hier mit einem Thread zu tun haben kann dies zu einem beliebigen Zeitpunkt passieren der auf jedem Fall in der Zukunft liegt, die Reihenfolge welcher der vielen Threads nun zuerst anfängt ist dabei nicht garantiert. Was hier bei dir passiert ist dass du deine for Schleife in Thread 0 durchläufst. Diese for Schleife startet Thread 1 ... n. Die Threads fangen aber erst etwas später an zu laufen. Mit dem Ergebniss dass deine Zählvariable "node" von Thread 1 schon hoch gezählt wurde. Nun kommt es dass zB. Thread 1 anfängt zu arbeiten und den aktuellen Wert von "node" ausliest. Nun wurde "node" natürlich schon hochgezählt und somit hat es nicht mehr den von dir gewünschten Wert. Die Lösung wie man dieses Problem vermeidet ist ganz einfach: Deklariere eine temporäre Variable im Scope deiner for Schleife und verwende diese temporäre Variable anstatt "node". Die temporäre Variable wird in dein Lamda gehoistet anstatt von "node" und da du diese temporäre Variable nirgendwo sonst veränderst wird diese den Wert für dieses Lamda besitzen.
  4. Optimiertes Erstellen eines großen Suchbaums

    Die Anzahl der Threads begrenzen (Threadswitches/Contextswitches könnten wenn du es mit den Threads übertreibst dafür sorgen dass ein Switch mehr Zeit in Anspruch nimmt als die Threadausführung selbst). ReaderWriterLockSlim verwenden anstatt lock Locks wenn möglich ganz vermeiden. Nichts muss gelockt werden wenn keine Teilen des Speichers verwendet wird. Locks minimieren -> Divide & Conquer Datenstrukturen so wählen dass sie Speichereffizient sind. Den Profiler verwenden um Engpässe aufzudecken.
  5. Turn Shader On/Off

    Depends on your specs I would say. You can simply remove the material used for the highlight effect from your renderer. A little bit more info would be most welcome.
  6. if CrossFadeAlpha == 0

    Description: https://docs.unity3d.com/460/Documentation/ScriptReference/UI.Graphic.CrossFadeAlpha.html Ich würde also hier schauen: https://docs.unity3d.com/460/Documentation/ScriptReference/CanvasRenderer.GetAlpha.html
  7. Mikrofon gewisse Lautstärke regestrieren

    Das dürfte per Microphone Klasse zu erreichen sein: https://docs.unity3d.com/ScriptReference/Microphone.html Mit der AudioClip Klasse dürftest du dann in der Lage sein die Samples auszulesen: https://docs.unity3d.com/ScriptReference/AudioClip.GetData.html http://answers.unity3d.com/questions/1167177/how-do-i-get-the-current-volume-level-amplitude-of.html Ohne Unity Boardmittel geht sowas auch, aber bevor ich darauf eingehe sollte das hier vermutlich schon reichen.
  8. Inselwelt per Script erzeugen

    Ohne mir das Problem im Script anzusehen: Poisson-Disc Sampling klingt nach genau dem was du suchst.
  9. Wert aus Hashtable als String auslesen?

    \r ist auch kein Symbol was ausgegeben werden kann https://stackoverflow.com/questions/1279779/what-is-the-difference-between-r-and-n
  10. GUI Aktualisierung, Tastendruck zweimal gewertet

    OnGUI wird mehrmals pro Frame ausgeführt: https://docs.unity3d.com/Manual/ExecutionOrder.html
  11. Wert aus Hashtable als String auslesen?

    Kann es sein dass deine tct Datei einfach nur durch Newlines die einzelnen Einträge voneinander trennt? Wenn du die einzelnen Elemente durch string.Split voneinander in ein Array aufspaltest dann besteht die Möglichkeit dass deine Strings ein abschließendes \r enthalten. Unter Windows kommt diese Form ganz oft vor.
  12. Sand / Treibsand

    Realistisch gesehen ist Treibsand nur eine Fläche bestehend aus Sand die sich leicht wie Wackelpudding verhält. Klischee Treibsand wäre aber vermutlich nur ein Decal auf einer Fläche der einen Warpin Effekt simuliert, das sollte sich durch einen Shader lösen lassen der einfach nur die UV Koordinaten zum Zentrum bewegt.
  13. Hi, folgendes sieht für mich nach einem Fehler aus: Texture2D[] wallTex = (Texture2D)walltextures [walltextures.Length]; Du konvertierst ein Arrayelement (bla[index]) zu ein Array. Das ganze Script sollte hier schon einen Fehler bei der Ausführung werfen. Zuerst eine IndexOutOfBoundsException an dieser Zeile und später eine konvertier Exception weil Texture2D kein Texture2D[] ist. Was du machen kannst ist einfach ein ELement aus dem walltextures Array zu nehmen und direkt nach texture2D zu konvertieren: r.material.mainTexture = (Texture2D)walltextures[i]; Das ganze würde dann so ungefähr aussehen: private UnityEngine.Object[] walltextures; void mapTexturesOverWalls() { walltextures = Resources.LoadAll ("Walls", typeof(Texture2D)); GameObject walls = GameObject.FindGameObjectWithTag ("Wall"); Renderer[] renders = walls.GetComponentsInChildren<Renderer> (); for (int i = 0; i < walltextures.Length; i++) { foreach (Renderer r in renders) { r.material.mainTexture = (Texture2D)walltextures[i]; UnityEngine.Debug.Log (wallTex + ""); } } } Aber auch hier würde es ein Fehler geben, eher einen logischen als einen der eine Meldung wirft. So wie deine Schleifen aufgebaut sind werden alle Renderer als mainTexture die letzte walltexture im Array haben. Wieso das so ist überlasse ich dir, will dir ja nicht den ganzen Spaß nehmen
  14. Hast du im TagManager das entsprechende Tag auch erstellt. Hat das gesuchte GO den Tag? Kann es sein dass du bedingt durch deine for Schleife i zu weit zählst und da kein entsprechend getaggtes GO mehr hast?
  15. Potenzial

    Das Potential halte ich für eher gering. Die Anzahl der Personen die wirklich in der Lage sind etwas Großes zu schaffen ist nicht sehr hoch. Der Rest müsste auf eine Stufe gebracht werden was enorm viel Zeit in Anspruch nimmt. Zeit die wiederum die fähigeren Leute nicht unbedingt haben da diese bereits im Berufsleben/Studium/Schule gebunden sind. Noch dazu kommt dass viele der Leute in einigen Jahren ihre Interesse auf anderes legen werden, was ganz normal ist. Die Chemie stimmt sicher auch nicht unbedingt, sicher gibt es Gruppen wo diese wieder stimmt, aber allein der Post jetzt hier von mir dürfte zeigen wieviele gegenläufige Meinungen es gibt und das nur bei einem kleinen Smalltalk Thema
×