Jump to content
Unity Insider Forum

Zer0Cool

Members
  • Gesamte Inhalte

    2.040
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    145

Alle erstellten Inhalte von Zer0Cool

  1. Lösche ggf. mal die Lightmap unter "Lightning" -> "Scene" -> "Build" -> "Clear Baked Data" und nimm da auch mal gleich den Haken raus, damit er eine Lightmap nur dann erstellt, wenn du sie wirklich brauchst. Ich hatte schon Fälle, wo eine zuvor automatisch erstellte Lightmap solche Probleme verursacht hat...
  2. Mhh so richtig kann ich die Skripte nicht entwirren aber, der OnTriggerEnter läd immer den letzten "savepoint" aus den PlayerPrefs, egal wie "levelSelect" gesetzt ist. Hier müsste die eigentlich Prüfung lastSavedLevel vs "LevelSelect" hinein ich verstehe nicht, warum "level" vom Außen gesetzt wird (in der Klasse selbst wird er nicht gesetzt), da die Levelvorgabe ja von "levelSelect" kommen soll? die Start()-Methode läd hier ein Level, obwohl du das Laden des Levels ja dem Trigger überlassen wolltest? du solltest die PlayerPref mit einem Defaultwert aufrufen und diesen Auswerten, damit du erkennst, wenn es noch keinen Speicherwert gibt.. der Defaultwert ist 0, aber diesen solltest du vielleicht auf -1 setzen, weil 0 ja auch ein Levelindex sein kann: public static int GetInt(string key, int defaultValue = 0); Ich vermute dein Levelindex steht auf 3 und daher wird bei Start immer Level 4 geladen!?
  3. Sieht sehr stimmig aus, besonders gefallen mir die Farben und die Stimmung des Bildes. Für meinen Bildschirm musste ich allerdings die Helligkeit des Bildes um ca. 30-35% erhöhen. In Zahlen beim Bildverarbeitungsprogramm wären das: Helligkeit (+190), Kontrast (-50). Dann sieht das Bild bei mir so aus: Wäre mal interessant zu erfahren, wie die Helligkeit der Bilder bei anderen Leuten so aussieht.
  4. Neues Video von unserem RPG "Twin Destiny":

     

    1. Zer0Cool

      Zer0Cool

      Ist nicht viel oder lang, aber unsere Designerin wollte mal einen Teil ihrer Arbeit präsentieren. ;) Ich hoffe es gefällt Euch.

  5. Ich kenne FMOD nicht, aber du kannst beliebige Soundfiles (Soundsources) in Unity abspielen und hast mit der Audiomixer-Komponente ein mächtiges, kostenloses und integriertes Tool um die verschiedenen Soundquellen zu mixen, zu überblenden und oder mit Soundeffekten zu verändern: https://unity3d.com/...diomixer-groups Andere Effektkomponenten kannst du hier finden: https://unity3d.com/de/learn/tutorials/topics/audio/sound-effects-unity-5
  6. Hört sich für mich eher nach einem Export Problem an (d.h. man muss die Vertex-Map ggf. in normale Textur-uvs umwandeln), aber ich bin nicht der Cinema4D Profi. Eventuell diese Exportoption: Vertex Maps to Vertex Colors If this option is enabled, all vertex maps will be exported as vertex colors.
  7. Ganz netter Vergleich:

    1. Vorherige Kommentare anzeigen  %s mehr
    2. Tiwaz

      Tiwaz

      Ich find's in Unity ehrlich gesagt hübscher.. aber mir zeigt der Vergleich eigentlich nur, dass man mit Unity in der Lage wäre grafisch mit der UE4 mitzuhalten. Oke UE4 hat höhere FPS, dafür deutlich instabiler und wenn man mal ehrlich ist, ist es für die meisten Entwickler(studios) ohnehin irrelevant, weil man sowieso nicht an solche Qualitäten kommt. Sei es aus mangelndem Können, Geld oder Zeit. Und die Textur-/Lichtqualität ist auch nicht immer alles was bei der Grafik zählt.

    3. Sleepy

      Sleepy

      Man vergleicht ja auch keinen Fiat Polo mit einem Ferrari oder ein Ferrari mit einem Porsche.

       

      Irgend einer ist immer schneller aber zu letzt entschiedet immer der Preis den sonst würde ja jeder Ferrari fahren wenn Ferrari wirklich bessere wäre.

      Ich glaube in Unity ist die Szene einfach sehr Nackt und man muss Shader usw dazu nehmen in der UE4 ist da vieles schon aktiviert und man muss gegeben falls erstmal alles rauskicken was man nicht braucht.

    4. Sleepy

      Sleepy

      Wir haben dieses Jahr auf dem Global Gamejam mit der UE4 entwickelt un wir hatten riesen Probleme bei der Zusammenarbeit und diverse Bugs die es wohl erst seit der Version 14 gibt. Wäre heute der Jam würde ich lieber Unity übernehmen auch wenn Unity keinen Machs geil Button hat.

       

  8. Das ist ja auch "nur" eine Normalmap und keine Highmap für einen Displacementshader. Gibt da einige Assets die auch eine Displacementmap auf das Terrain legen können, du kannst den Boden aber auch über das Terrain selber "wellig" gestalten. Du kannst auch noch ein wenig die Normalmap nachbearbeiten, um Unterschiede besser zur Geltung kommen zu lassen. Wenn die Strukuren der Normalmap beispielsweise zu klein sind (ich denke bei einer Sandtextur wird eine automatisch generierte - wird oft so gemacht - Normalmap meistens zu feingranular). Hier ist ein Asset, habe ich aber selbst noch nicht getestet. Wenn du es kaufst und testest würde es mich freuen, wenn du die Erfahrungen damit berichtest (mir oder im Forum): https://www.assetsto...!/content/76166
  9. Meintest du "Unity Collaborations"? Aber abgesehen davon, sehe ich keinen Grund, warum Gaia dort nicht funktionieren sollte. Ich vermute mal eher es fehlen dir "Gaia"-Daten in deinem Assetfolder... Ich würde mal Gaia in deinem Projekt löschen und dann neu importieren.
  10. Hört sich für mich "rechtlich" aber auch wie Glücksspiel an, auch wenn du Wettkampf dazu sagst, ich vermute das wird da rechtlich gleich behandelt, aber vielleicht weiß da jemand genaueres. Ich vermute es wäre einfacher es "Ingame" zu halten, d.h. die Gewinnsumme muss wieder für Ingame-Items verwendet werden.
  11. Die sollten eigentlich gleich sein, wenn du entweder eulerAngles oder localEulerAngles verwendest. Die Werte im Editor werden auf 360 Grad umgerechnet, d.h. wenn du dort 370 eingibt, wirst du über eine Codeabfrage 10 erhalten. Ich habe dir mal die Umrechnung nachgestellt, da in den negativen Bereichen nicht ganz einfach: Vector3 eulerAngelesEditor = new Vector3(-40, -40, -40); float xeulerAngelesCode; float yeulerAngelesCode; float zeulerAngelesCode; if (eulerAngelesEditor.x >= 0) xeulerAngelesCode = Mathf.Abs(eulerAngelesEditor.x) % 360; else xeulerAngelesCode = Mathf.Abs(360 + (eulerAngelesEditor.x % 360)); if (eulerAngelesEditor.y >= 0) yeulerAngelesCode = Mathf.Abs(eulerAngelesEditor.y) % 360; else yeulerAngelesCode = Mathf.Abs(360 + (eulerAngelesEditor.y % 360)); if (eulerAngelesEditor.z >= 0) zeulerAngelesCode = Mathf.Abs(eulerAngelesEditor.z) % 360; else zeulerAngelesCode = Mathf.Abs(360 + (eulerAngelesEditor.z% 360)); Debug.Log(xeulerAngelesCode + " : "+ yeulerAngelesCode + " : " + zeulerAngelesCode); Die präziseste Beschreibung bekommst du über: https://docs.unity3d...m-rotation.html
  12. Ich denke es spielt keine Rolle, ob das Objekt - welches du Löschen möchtest - einem anderen Objekt untergeordnet ist. Wichtig ist eben, daß dein Raycast das richtige Objekt auch trifft. Das kannst du über Layers erreichen (hier filtert der Raycast selbst aus) oder indem du dir alle Objekte zurückgeben lässt, die der Raycast trifft und du dann diese Objekte selbst filterst. Hierbei ist es hilfreich die Gameobjekte gezielt zu benennen oder zu taggen.
  13. Ich habe mir nur das Youtube-Video angeschaut, sieht sehr nett aus, sehr gut animiert, schöne Grafiken und Animationen. Ich denke Unity war da eine gute Wahl, um so etwas umzusetzen. Ob es die Zielgruppe anspricht und nicht über- oder unterfordert muss man eben sehen und ich hoffe du bekommt da mit Disney keine Probleme wegen den Rechten.
  14. Hallo zusammen, vielleicht kann jemand diesen Shader ebenfalls gebrauchen. Aktuell ist es wohl so, daß die Standardshader in Unity transparente Oberflächen nur ohne Schatten darstellen können, d.h. es wird kein Schatten auf eine transparente Fläche geworfen und das kann in einer Szene mit Schattenwurf ziemlich störend sein. Man kann zwar aktuell einen Cutout-Shader verwenden, aber dieser produziert eben nicht die gleichen Ergebnisse (scharfe Kanten) wie ein Transparent-Shader. Falls jemand tiefer einsteigen möchte, hier der zugehörige Diskussionsthread im Unityforum: https://forum.unity3...y-shaders.9909/ Der hier vorgestellte Shader ist im Prinzip der Builtin Diffuse-Transparentshader mit einem "Kniff": Shader "FX/TransparentDiffuseWithShadows" { Properties{ _Color("Main Color", Color) = (1,1,1,1) _MainTex("Base (RGB) Trans (A)", 2D) = "white" {} } SubShader{ Tags{ "Queue" = "AlphaTest+50" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout" } LOD 200 CGPROGRAM #pragma surface surf Lambert alpha:fade sampler2D _MainTex; fixed4 _Color; struct Input { float2 uv_MainTex; }; void surf(Input IN, inout SurfaceOutput o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; o.Alpha = c.a; } ENDCG } Fallback "Legacy Shaders/Transparent/VertexLit" } Ich habe obigen Shader in meinem Projekt dazu verwendet, um Bewuchs an einer Steinmauer zu visualisieren:
  15. Wenn mein obiges Skript an 30 Objekten hängt, solltest du das Performancetechnisch kaum merken. Da hast du wohl eher ein anderes Problem, achte darauf, daß in der Updatemethode nur wenig Code ausgeführt wird. Bei meiner Methode passiert pro Frame (also in dem Updateaufruf) nur eine Prüfung auf "this.transform.hasChanged". Das macht in Summe bei 30 Objekten mit diesem Skript, 30 Anweisungen pro Frame (d.h. deine FPS sollte sich eigentlich nicht verändern). Noch ein Hinweis, wie du von der Update-Methode wegkommst: Wenn die Veränderungen der Würfel durch den Spieler ausgelöst werden, dann gehört der Code der prüft ob die Würfelpositionen sich verändert haben in die Methode, die die Spieleraktion auslöst. Und hier macht dann ein Aufruf mit Verzögerung Sinn, über "Invoke".
  16. Du kannst auch einfach jedem Würfel ein Script verpassen, daß die Ausgangslage jedes Würfels beim Programmstart speichert. Nun prüft dieses Script entweder - wie Tiwaz meint - die Ausgangslage gegen die aktuelle Position, wenn es angestoßen wird, oder wenn der User etwas verschiebt, oder wenn du etwas per Code veränderst. Es in der Update-Methode oder FixedUpdate-Methode zu machen wäre dagegen nicht so performant, aber auch möglich. public class Location : MonoBehaviour { private Transform orginPosition; private bool hasChangedPosition = false; void Awake () { orginPosition = this.transform.position; this.transform.hasChanged = false; } void Update() { if (this.transform.hasChanged) { // the transform has changed this.transform.hasChanged = false; if (orginPosition != this.transform.position) { // the transform position has changed hasChangedPosition = true; } else { hasChangedPosition = false; } } } }
  17. Schönes Beispiel für die Benutzung der Animationskomponente von Unity
  18. Hallo Lonely World, ich bin auch gerade am Level designen und hatte ähnliche Probleme mit dem Billboarding der Bäume, aber vieles schon gelöst. Wir können uns gern mal über Skype austauschen. Die weißen Ränder an deinem Bäumen könnte ein Fehler im Alphachannel sein, oder ein fehlendes "Edge Pedding" bei den Texturen sein. Ich hatte ein ähnliches Problem, allerdings hoben sich bei mir die Billboard-Baumtexturen vollständig ab, da sie zu hell waren und sie ignorierten den "Gobal Fog" komplett. Bei mir war es dann Problem mit dem internen "Global Fog"-Shader von Unity in Verbindung mit dem "Global Fog"-Kameraskript. Zu dem 2. Problem: Wenn du die Shadow Strength deiner Sonne auf 0 regelst sollte dein Char keinen Schatten mehr werfen. Wenn doch hast du ein anderes Problem in deiner Scene, z.b. eine 2. Lichtquelle. Ansonsten wird der Schattenwurf über die Lichtquelle (von daher bist du bei Shadow Strength schon richtig) geregelt (oder die Lightmap), Es kann auch sein, dass du an deiner Kamera z.b. ein "Ambient Occlusion"-Skript hängen hast, hier können auch nachträglich Schatten entstehen. (Ps: Dein Bild ist viel zu dunkel, als daß ich darauf etwas erkennen kann) Gruss, Zero
  19. Hallo zusammen, ich beschäftige mich gerade relativ viel mit Shadern und da ich der Community auch mal etwas zurückgeben wollte, habe ich einmal einen ganz brauchbaren Shader von der Seite http://glslsandbox.com/e#35099.0 nach Unity portiert, der eine plasmaähnliche Oberfläche simuliert. Ich würde ihn für spezielle Effekte verwenden, wie magische Portale, Wände, kleine magische Gegenstände oder einfach als Hintergrund für einen Splashscreen. Bei Objekten die in der Szene bewegt werden, würde ich ihn nicht verwenden (außer die Objektgeometrie spielt keine Rolle), da er ein Pixelshader ist und die räumliche Lage des Models im Raum ignoriert. Was man damit auch machen könnte, wäre einen "Schutzschild" um einen Spieler herum zu visualisieren. Einfach eine Sphere nehmen, diesen Shader zuordnen und den Alphakanal herunterregeln z.B. 0.5 und die Sphere auf einen Charakter Controller ziehen. Zum Ausprobieren den Shader einfach einem Material zuweisen und die gewünschten Farbwerte und Transparenz einstellen. Dann bspw. eine Plane in die Scene ziehen und das Material setzen. Aufpassen, dass ihr mit der Camera auf die Vorderseite der Plane schaut. Ich habe den Shader zusätzlich transparent gemacht und die Farben lassen sich wie gewünscht über einen Slider einstellen. PS: Wenn man das Material des Shaders auf ein Quad (oder Plane) legt, über eine Kamera "abfilmt" und so eine Rendertextur erzeugt, dann kann man diese Textur auch für beliebige 3D-Objekte verwenden. Viel Spaß beim Austesten PlasmaWaves.shader
  20. Kommt ganz drauf an, was du genau optisch erreichen willst. Möglichkeiten gibt es folgende: - Kamera nach vorne bewegen - Fläche zur Kamera bewegen - Fläche vergrössern
  21. Ja Unity ist dafür bestens geeignet. Ich glaube ich habe auch schon fertige Assets im Unity Store gesehen für Comic Storylines .. für den Einstieg bestimmt nicht verkehrt solch eines zu verwenden und dann zu sehen an welchen Stellen man noch nachbessern muss und ggf. einen Programmierer ins Boot holen sollte. Spiele wie z.b. https://de.wikipedia.org/wiki/Day_of_the_Tentacle waren sehr erfolgreich und lebten von der Grafik und der witzigen Umsetzung in einem Spiel.
  22. Wenn ich das richtig sehe, dann ist das "flackern" nicht frameratenunabhängig, d.h. wenn du eine sehr hohe Framerate hast, so wird es wohl so schnell flackern, so dass es so aussieht als wäre es ständig an. Probier mal dieses Skript hier aus: var timeOn = 0.1; var timeOff = 0.5; private var changeTime = 0; void Update() { if (Time.time > changeTime) { light.enabled = !light.enabled; if (light.enabled) { changeTime = Time.time + timeOn; } else { changeTime = Time.time + timeOff; } } }
  23. Nettes Projekt turritom, weiter so Hast du schon eine Version zum "Anspielen +Testen" und machst schon Bugfixing oder bist du noch voll in der Entwicklung bzw. im "Feinschliff"?
×
×
  • Neu erstellen...