Jump to content
Unity Insider Forum

thewhiteshadow

Members
  • Content count

    72
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by thewhiteshadow

  1. Geh auf deinem Baum. Dann auf Edit Tree... auf den kleinen Kreis in der rechten Ecke klicken. Fenster geht auf mit einer Prefab-Liste, davon ist dein Baum ausgewählt. Unten steht der Pfad zum Prefab. Öffne das Prefab im Projekt-Explorer und guck es dir mal an. Evtl. hat es einen Skin-Mesh-Renderer oder sowas. womit die Terrain-Engine nicht umgehen kann. Da ein Bild angezeigt wird, sollte das Objekt ja irgend einen Renderer haben. Und warum hat dein Terrain ein Meshrenderer? Das ist blödsin.
  2. Alle Oberflächen werden nur von einer Seite gerendert und du bist durch die Wand gelaufen. Folglich siehts du nur Rückwände, die nicht gerendert werden. Löscung1: Kollisionsboxen verwenden.
  3. thewhiteshadow

    wie RAW Datei für Map erstellen ?

    Du benötigst eine Höhenmap. Üblicherweise ist das ein einfaches Bild in Graustufen. Darf nur nicht jpg sein! Du bekommst Höhenmaps teilweise gratis im Internet. z.B. NASA hat die ganze Erde in 16k wenn du willst. Edit: Programme die RAW-Dateien erstellen können: Photoshop, Gimp, ...
  4. thewhiteshadow

    Spieler bei Rotation neue Bewegungsrichtung zuweisen

    rigid.velocity = movement * Camera.main.transform.rotation; Das ist schon halbwegs richtig, aber du darfst nur die Y-Achse der Rotation verwenden. Also erst nach Euler, Komponente trennen und das Resultat multiplizieren.
  5. thewhiteshadow

    Terrain an Objekt (strasse) anpassen Via Script?

    ich habe das Terrain in Blender modeliert und die Straße aus einer Kurve erstellt und händisch auf das Terrain angeglichen. Danach eine Highmap daraus erstellt und in Unity geladen. Manuell Asphaltiert und fertig. Eine andere Idee, die bei mir nicht zufriedenstellend funktioniert hat, war eine hoch transparente linie in photoshop, die die Heightmap etwas aufhellt. Aber vielleicht lappt das ja bei dir. Edit: Andere Idee wenn due eine Model der Straße hast: Du könntest ein Skript schreiben, dass für jeden Vertex der Straße die Höhe des Terrains bestimmt und den Vertex um genau diese Höhe (minus Offset gegen kleine Lücken) setzt. Das kannst du im editor machen, zum spielbeginn oder sogar in einem Shader machen. Ich habe ähnliches mal gemacht um einen Zaun zu erstellen. Siehe Hier
  6. thewhiteshadow

    Textur passend auf Plane mappen

    Das ist falsch. Das trifft zwar so auf Quads zu, aber eine Plane besteht aus mehreren Quads und zeigt die Textur ca 4-6 mal (weiß ich nicht mehr genau) an
  7. thewhiteshadow

    eigene Objekte verschwunden

    Eine Szene wird mit allen Objekten darin gespeichert. Aber beim build müssen alle Szenen angegeben werden die da rein sollen. Ich habs noch nie ausprobiert, aber könnte mir vorstellen, wenn du nichts angegeben hast, dass er eine leere Szene ladet.
  8. Du kannst nur eine Kamera gleichzeitig aktiv haben. Also beim Umschalten immer die anderen deaktivieren.
  9. thewhiteshadow

    ParticleSystem - BulletTracer

    Bei Spielen, die auf physikalisch korrektes Waffenverhalten setzen, kommt die Kugel eben aus der Waffe, während der Schütze daneben steht. Schießen aus der Hüfte ist nun mal ungenau. Dafür gibt es ja dann das Anvisieren, wo die Zielvorrichtung der Waffe benutzt wird. Willst du einfach unrealistischen Ballerspass, kannst du es mit dem Kamera-Raycast machen.
  10. thewhiteshadow

    A-Star Algorythmus

    Wenn ihr den Algorithmus ordentlich programmiert hättet, könntet ihr den Core einfach 1:1 kopieren. Das Grundproblem ist schon, dass der Algorithmus nix mit monobehavior zu tun hat, also bitte pack ihn in eine eigene Klasse. Spiel-Objekte sollten ihn nach einem Weg "fragen" und nicht implementieren. Die "Knoten" sollten auch nur die Informationen haben, die der Algorithmus braucht und evtl als interface implementiert werden. Außerdem sollten die Wegpunkte nicht von jedem Monster erstellt werden sondern als Struktur zentral (Singelton?) vorliegen. Bestenfalls vorgebacken.
  11. thewhiteshadow

    Welcher Spieler anfangen darf (ausknobeln über Würfel)

    1. Pack die Spieler in einem Array zusammen. 2. Iteriere über dieses Array. Das sollte ca 90% der Zeilen einsparen.
  12. thewhiteshadow

    Terra Forming und Terrain Performance

    Du kannst die Auflösung der Highmap ändern. In den Einstellungen vom Terrain ziemlich weit unten. Wenn du deine Arbeit nicht zunichte machen willst, solltest du allerdings vorher deine Highmap exportieren und per Grafikprogramm skalieren und wieder importieren.
  13. thewhiteshadow

    Raycast Hit Point verschoben (gelöst)

    Das passiert, weil die Kugel zu schnell für die Erkennung ist. stell beim rigidbody mal die Detection auf continuierlich.
  14. thewhiteshadow

    Nach Baken alles dunkler

    mehr Licht? Oder du korrigiert es im Posteffekt-Stack
  15. thewhiteshadow

    Nach Baken alles dunkler

    Das ist normal. Du hast im ersten Screen keine dynamischen Schatten. Also werden diese gebacken und machen logischer weise die Szene dunkler. Indirektes Licht macht Schatten zwar lichter, aber nicht heller als direktes Licht. Im endeffekt backst du also mehr Schatten als Licht. Bei HDR erfolgt ein Mapping , da der Monitor keine Farben >1 anzeigen kann, bei sRGB wird einfach abgeschnitten. Du hast vermutlich eine Lampe die Heller ist und das HDR-Mapping stellt das korrekt da. (Farbiges Licht ist bei sRGB immer dunkler als weiß)
  16. thewhiteshadow

    Circle Sprite in Farbabschnitte aufteilen

    Natürlich geht das mit nem Shader. Das Problem ist ähnlich wie ein Schild-Shader mit Impact-Effect. Gibt Tonnenweise tutorials davon auf YT. Einfach 2 vector-Arrays erstellen. eins für die Farbe, eins für die Position. Da Arrays in Shadern nicht dymanisch sein können, musst du ein MAximum definieren und die Füll-Menge mit übergeben.
  17. thewhiteshadow

    Lightmaps Größe

    ich bin in diesen Punkten auch eher Anfänger. Ich hab erst ein angefangene Projekte, in dem ich überhaupt eine Lightmap ernsthaft konfiguriert hab. Dabei hab ich die Lightmap Resolution auf 10 runter gesetzt, das sind dann 10cm pro Pixel, wenn man units als meter verwendet. Indirect Resolution ist soweit ich weiß nur für dynamische GI Lightmapsize sollte so gewählt werden, dass möglichst wenig Platz verschwendet wird. Stell das erst am Ende ein. Zum Lightmap Padding kann nicht nicht viel sagen. 2 scheint ganz ok zu sein. Wenn du allerdings vor hast, die Lightmap händisch nachzubearbeiten. b.z. ein blur gegen das rauschen, macht etwas mehr vielleicht Sinn, damit es nicht durch-blutet.
  18. thewhiteshadow

    Lightmaps Größe

    2048 als Lightmap für EINEN Raum ist echt viel. So granular muss die Lightmap vermutlich gar nicht sein, da die Texturen - sofern das keine polierten uni-farbige Hochglanz-Fliesen sind - ein Großteil der Verpixlung der Lightmap wech machen. Die Standard-Einstellung von 40 textel per unit ist auch extrem hoch und man soll sich ja bekanntlich von unten rantasten bis keine auffäligen Fehler mehr drin sind. Alternativ kannst du HDR bei der Lightmap ausschalten wenn du nicht vorhast mit Bloom zu arbeiten und eher dunklere Farben verwendest. Der Haupt-Vorteil bei HDR ist ja, dass Farben > 1 gehen. Von dem Mehr an Farben hat man in diesem Fall nicht viel.
  19. thewhiteshadow

    Lightmaps Größe

    Bilder sind auf der Platte komprimiert. Lightmaps sind zudem HDR, also 16bit pro Farbe + Alpha 2048*2048 Pixel * 16 bit * 4 Farben = 256MB => Passt also
  20. thewhiteshadow

    Relative Bewegung zur Kamera (CubeWorld)

    private Quaternion GetRotation() { Vector2 movementDirection = GetMovementDirection(); // Achtung. Ich weiß nicht, wie diese Konvertierung implementiert ist. Vermutlich wird z auf 0 gesetzt, was falsch wäre. //Vector3 worldDir = movementDirection; // Besser: Vector3 worldVec = new Vector3(movementDirection.x, 0, movementDirection.y); // Noch besser: Du verwendest Vector2 nicht in einem 3D-Spiel Vector3 euler = Camera.main.transform.rotation.eulerAngles; euler.x = 0; // Y Bleibt über euler.z = 0; Vector3 camRelVec = Quaternion.Euler(euler) * worldVec; return Quaternion.LookRotation(camRelVec, Vector3.up); }
  21. thewhiteshadow

    Physics.CheckBox will nicht

    Ich versuche für ein Objekt, was ich erzeugen will mit Physics.CheckBox vorher zu prüfen ob es plaziert werden kann. Leider schlägt die Funktion nie an. Der Ausschnitt sieht etwa so aus: BoxCollider collider = prefab.GetComponent<BoxCollider>(); location = ... rotation = ... // Das lasse ich mir mit Graphics.DrawMesh anzeigen und stimmt auch, da das Objekt an genau dieser Position landet. // meinLayer ist Konstant und richtig. Das habe ich mehrfach überprüft. // collider.size ist beim prefab gesetzt. bounds würde an der Stelle nicht funktionieren. // Ich weiß, dass CheckBox die halbe Größe haben will, also /2 if (!Physics.CheckBox(location, collider.size/2, rotation, meinLayer, QueryTriggerInteraction.Collide)) { // frei (hier geht er immer rein) } else { // hier geht er nie rein } Meine Rahmenbedinngungen: Ich führe die Aktion in der Start-Methode aus. Alle Objekte haben das "Trigger"-Flag im Collider und kein Rigedbody. Im Anhang sieht man deutlich die Überlappung der Teile. Das vorhandene Teil (Links) das neu plazierte Teil (Rechts) mit der Debug-Wireframe-Box über Graphics.DrawMesh gezeichnet. (Der Collider stimmt damit überein). Dennoch schlägt CheckBox nicht an. P.S. Bitte nicht auf die unsinnige Ausrichtung der Kollisions-Box im vergleich zur Plazierung achten. Ich weiß, dass ich hier noch Feintuning betreiben muss. Weiß jemand vielleicht was ich falsch mache, oder wo ich nochmal ansetzen kann?
  22. thewhiteshadow

    Physics.CheckBox will nicht

    Ok ich hab eine Lösung. Irgendwie mag Checkbox die Angabe eines Layers nicht. Wenn ich ~0 verwende geht es. Obwohl der Layer definitiv richtig ist und ich überhaupt kein Objekt mit anderem Layer habe. Das ist zwar nervig, weil ich jetzt mit OverlapBox arbeiten muss und den Layer im Nachgang überprüfen muss, aber immerhin gehts. Ich würe nur zugern wissen, warum das so ist. Möglicherweise ein Bug? Ok ist weiß es nun. LayerMask.NameToLayer gibt keine Maske zurück, sondern nur den Layer.
  23. thewhiteshadow

    Physics.CheckBox will nicht

    Das mit dem ganzen Code ist etwas schwierig, weil der über 2 Klasse mit diversen Hilfsklassen geht und ziemlich lang ist.
  24. thewhiteshadow

    Physics.CheckBox will nicht

    Die parameter ergeben die im Anhang gezeige Box (Links). Und die überlappt den rechten Collider. Auf Y-Achse überlappen die sich natürlich auch (Der screenshot ist von oben). Das mit der Start-Methode hab ich auch schon überlegt, aber es steht nichts davon in der Doku und von der Funktionsweise sollte das egal sein.
  25. thewhiteshadow

    Physics.CheckBox will nicht

    Sieht nur 2D aus. Es sind 3D Collider, andernfalls würde ich vermutlich eine NPE erhalten, weil BoxCollider null ist.
×