Jump to content
Unity Insider Forum

Thariel

Members
  • Posts

    499
  • Joined

  • Last visited

  • Days Won

    19

Thariel last won the day on May 20

Thariel had the most liked content!

About Thariel

  • Birthday 11/30/1988

Profile Information

  • Gender
    Male
  • Location
    Bern
  • Interests
    Krafttraining, Spieleentwicklung, Studio Fotografie

Recent Profile Visitors

17,731 profile views

Thariel's Achievements

Advanced Member

Advanced Member (3/3)

99

Reputation

  1. Hi Der Spieler kann einen Ordner auf seinem PC definieren, in dem sehr viele und grosse Dateien sind und er kann sie danach in Unity in Kategorien sortieren, sie bewerten und so weiter. Ich möchte also Dateien in eine XML Datenbank aufnehmen und über diese Dateien Informationen speichern. Irgendwie muss ich die Dateien wiedererkennen um ihnen die Informationen zuordnen zu können. Der Dateiname taug dazu nicht, weil es kann in verschiedenen Unterordner mehrere mit selbem Namen geben. Den Pfad mit Dateinamen zu verwenden geht auch nicht, weil man die Dateien verschieben könnte und sie nicht mehr erkannt werden. Ein Hash berechnen geht viel zu lange. Die Dateien können 10GB gross sein und es können 1000 Dateien sein. Es sollte nicht länger als 1000ms gehen, um eine Datei zu erkennen. Habt ihr eine Idee, wie ich Dateien schnell, aber ohne ihren Namen erkennen und zuordnen kann? Es wäre nicht sehr schlimm, wenn es in seltenen Ausnahmen dabei eine Verwechslung geben würde. Hoffe ihr habt da eine Idee 😃 Edit: Es sollte auch Plattformunabhängig funktionieren.
  2. Ich hab jetzt ein kleines Video gemacht um es zu demonstrieren. Leider nicht so tolle Qualität. Hab echt lange rumprobiert, aber ging gerade nicht besser. Zu sehen ist vor allem, dass die Decals immer nur an Orten platziert werden, wo sie nie überlappen oder überstehen. Ausserdem werden nur 50 dargestellt und die ältesten wieder gelöscht. Das ganze ist jetzt ohne Projektoren. Bin mit dem Ergebnis so zufrieden und muss nur noch Pooling anwenden, um es abzuschliessen.
  3. Hi Ich hätte gerne die Möglichkeit, ein Dissolve Effekt auf alle Npcs anzuwenden. Dazu hab ich (URP) mit dem Shader Graph den Standard-LitShader nachgebaut und den Dissolve Effekt mit integriert. Leider wird das Objekt jetzt verkümmert dargestellt, auch wenn der Alpha Wert noch so hoch ist, dass keine Transparenz dargestellt wird. Die Transparenz-Eigenschaft kann ich aber natürlich nicht entfernen, sonst funktioniert es ja nicht mehr. Oder mache ich das grundsätzlich irgendwie falsch? Kann ich etwas tun, dass das Objekt nicht mehr verkümmert dargestellt wird? Gibt es vielleicht sogar die Möglichkeit, den Teil im ShaderGraph für den Dissolve Effekt erst nachträglich zu aktivieren? Gibt es die Möglichkeit, 2 Materialien mit einem Fade auszutauschen? Dazu würde ich einfach den Standard-LitShader nutzen und bei bedarf auch einen Dissolve Shader wechseln. Links mit Dissolve Shader:
  4. Ja, da hast du recht. Vor allem auch für die Munition, Hülsen und so weiter. Muss mich mal ernsthaft damit befassen. Mit SRP meinte ich den Built-in Shader. Habe mich jetzt aber weiter mit URP und HDRP befasst und es gibt tatsächlich eine Menge Gründe, die für die URP sprechen, gerade auch in VR. Habe die URP bereits aktiviert und "dein" Decal System getestet. Leider gibt es da auch Probleme. Zum Beispiel langgezogene Decals an Kanten, wenn der Projektor nicht korrekt positioniert wird. Zudem projiziert der Projektor auf alles. Wenn ein Objekt vor den Projektor gerät, wird das Decal plötzlich darauf gerendert. Hab noch kein Weg gefunden, da bestimmte Layer auszuschliessen. Aktuell bleibe ich lieber noch bei meinem jetzigen System 😀
  5. Hi Danke für den Tipp. Ich hab eigentlich nicht vor, die SRP zu verlassen. Gibt sonst sicher kompatibilitäts Probleme mit anderen Assets. Ich hab es jetzt so gemacht, dass ich vor dem platzieren eines Decals mit 4 Raycasts prüfe, ob jeden der Ecken auch auf Grund liegt. Danach platziere ich das Decal und sie haben ein Box Collider, damit sie nicht überlappen. Ich sorge ausserdem, dass nie mehr als 50 Decals vorhanden sind, sonst wird das älteste wieder gelöscht. Ich denke, es sollte so von der Performance her passen. Schliesslich ist das Schiessen und die direkten Auswirkungen darauf DAS Kernelement vom Spiel, da darf man auch mal etwas in die Performance investieren. Funktioniert jetzt alles sehr gut.
  6. Hi Mich würde interessieren, wie ihr Decals in euern Spielen handhabt oder wie ihr es tun würdet. Habe mir darüber bisher noch keine Gedanken gemacht, hab irgendwie damit gerechnet, dass Unity da eine Built-in Lösung hat... falsch gedacht 😂 Im Moment erstelle ich einfach ein GameObject mit einem Sprite Renderer und positioniere es mit einem Raycast. GameObject go = Instantiate(goBulletHoleTemplate, hit.point, Quaternion.LookRotation(hit.normal)); go.transform.position += go.transform.forward * 0.0001f; //flickern verhindern Natürlich überlappt das Decal auch (noch) Ecken und Kanten: Ich hab mir das in Serious Sam 3 VR BFE ganz genau angeschaut. Da überlappen Decals niemals eine Kante. Das Decal wird "abgeschnitten" dargestellt: Ich hab keine Ahnung wie die das machen. Zum Beispiel könnte man bei jedem Decal mit 4 Raycasts prüfen, ob da wirklich überall Untergrund ist, aber dann gäbe es an Ecken keine Decals mehr und es wäre nicht besonders performant, vor allem bei einer Schrotflinte, die etwa 15 Einschusslöscher macht. Ich denke da gibt es irgend einen performanten Trick, den ich (noch) nicht kenne 😀 Hab ihr irgend welche Ideen? Danke schon mal! Edit: Ausserdem werden nie 2 Decals übereinander positioniert. Irgendwie wird erkannt, dass da schon ein Decal ist, aber kann mir nicht vorstellen, dass dieses Decal ein eigener Collider hat... oder überschätze ich einfach die Performance Einbusse für solchen "Kleinkram"?
  7. Ich speichere immer in XML Files mit System.Xml.Linq.XDocument
  8. Ich kenne das Oculus Plugin (gibts gratis im Unity Asset Store) und das hat bei mir immer auf Anhieb funktioniert. Ich habe noch nichts mit SteamVR entwickelt, aber SteamVR ist sicher zukunftsträchtig. Ich würde sogar eher zu SteamVR raten, weil Facebook scheint ja völlig übergeschnappt zu sein mit dem Facebook zwang und so weiter. Viele wollen von Oculus weg und Oculus hat kein Mittelklasse oder High-End Headset das nur ansatzweise konkurrieren könnte. Bei SteamVR bist du sicher gut aufgehoben. Wäre nur ärgerlich, wenn Oculus plötzlich dagegen arbeiten würde.
  9. Das Projekt nimmt langsam Gestalt an, das ist gut 👍 Ich habe noch einen Vorschlag: Du könntest beim Soundeffekt vom Schuss jedes mal den Pitch Wert zufällig variieren (z.B. Random.Range(0.85F, 1.15F)), so dass jeder Schuss ein wenig mehr Variation hat und es dynamischer klingt.
  10. Ich denke es ist nicht die Funktion SetActive(), die langsam ist, sondern es liegt eher am GameObject selbst. Wahrscheinlich gibt es da für Unity einfach "viel zu tun", um es ein/aus zu schalten. Wenn du es mit einem anderen oder leeren GameObject machst, wird es sicher sehr schnell sein. Hatte aber noch nie Performance Probleme beim ein und ausschalten. Ich denke das Problem liegt daran, dass da etwas nicht so elegant entwickelt hast. Edit: War zu langsam 🤪
  11. Na klar, kein Problem 😀 In Unity besteht alles aus Game Objects und jedes Game Object besitzt Komponenten. Diese Komponenten können Scripts, Kollisions-Boxen und sehr vieles mehr sein. Das sind quasi die "Eigenschaften". Hier ist zum Beispiel ein offizielles Tutorial von Unity, in 2 Minuten klärt es all deine Fragen:
  12. Ich weiss nicht genau, was du mit "Eigenschaften kopieren" meinst. Falls du im Inspector Komponenten kopieren willst kannst du einfach links-oben auf die Ecke klicken und "Copy Component" klicken und so auch wieder einfügen. In Unity kann man zum Beispiel auch humanoide Animationen untereinander kopieren. Du könntest also im Asset Store ein Animations Paket kaufen oder ein kostenloses runterladen und sie auf den CC3 Charakter übertragen. Unity ist eigentlich nicht kompliziert, aber man muss halt wissen, was man wo einstellt und wie der Workflow funktioniert. Wenn du zum Beispiel jeden Tag 2h Unity lernst, könnte es gut sein, dass dein CC3 Charakter nach einer Woche bereits "laufen gelernt hat", aber direkt mit der Charakter Animation einzusteigen... da überspringst du einfach 10 essenzielle Schritte 😀 Kannst du denn etwas englisch? Hier wäre ein guter Start: https://learn.unity.com/
  13. Willkommen 😀 Wenn du ein Charakter von CC3 importierst, dann hast du ein statisches 3d Modell, das nix kann. Es fehlt an allem: Animationen, Skripte, Soundeffekte und so weiter. Das 3d Game Kit ist ein Beispiel und da stecken bereits (sehr) viele Stunden Arbeit von Profis darin. Du kannst gerne im 3d Game Kit herum experimentieren, aber du wirst nicht darum herum kommen, wieder ein Schritt zurück zu machen und die Basics von Unity zu lernen.
  14. Hi Wenn du ein Spiel entwickeln willst und du dich für eine Engine und Sprache entscheiden willst, dann würde das gut überlegen. Dabei würde ich nicht nur auf die Features der Engine achten sondern auf viel mehr: Preis der Engine, vorhandene Tutorial, wie schnell man bei individuellen Problemen Hilfe bekommt, ist die Community aktiv und in meiner Sprache verfügbar, gibt es bereits vorhandene Assets zu kaufen, wie schnell kann ich Prototypen bauen und schauen ob mein Spiel überhaupt funktioniert, wie sicher wird die Engine noch in einigen Jahren supported, und vieles mehr. Dabei halte ich Unity mit C# für den klaren König. In Vergangenheit und Zukunft. Ich würde ehrlich gesagt lieber ein Spiel mit einer Engine entwickeln, die nur halb so gut wie Unity ist, aber dafür die Assets und den Support bietet, wie Unity. 🤪 Für die 3d Modelle nutzen viele Blender, ich nutze am liebsten Maya.
×
×
  • Create New...