Jump to content
Unity Insider Forum

Kojote

Members
  • Posts

    1,472
  • Joined

  • Last visited

  • Days Won

    10

Kojote last won the day on May 13 2021

Kojote had the most liked content!

Recent Profile Visitors

4,996 profile views

Kojote's Achievements

Advanced Member

Advanced Member (3/3)

51

Reputation

  1. Grüße! Ich hätte mal wieder eine Frage zur Umsetzung eines Projektes. Es geht darum, dass ich ein Spiel plane bei dem man im Untergrund ist und sich Blockweise durch den Untergrund gräbt. Das ganze würde aus der Beobachterperspektive stattfinden. Man könnte jetzt hunderte Blöcke im Editor platzieren. Wäre Level jedoch Level für Level umständlich und viel wichtiger, man hätte bei einer 50x50 Map 2.500 Objekte in der Szene. Selbst wenn mir einfallen könnte wie die Blöcke mit einander kommunizieren und man nicht sichbare Flächen nicht anzeigt sind es extrem viele Objekte, Collider, ect. Hat jemand eine Idee wie man das umsetzen könnte?
  2. Hi! Ich hätte mal eine Frage zu Screen.SetResolution. Ich habe ein Settings Script in dem alle Quality Einstellungen zum ersten Spielstart hinterlegt sind. Für die Monitorauflösung nutze ich folgendes: if(settings.videoSettings.screenResolution == 0) { // No resolution is specified, the standard monitor resolution is used. Screen.SetResolution(Screen.width, Screen.height, settings.videoSettings.fullscreen); //Debug.LogError("No specified resolution. Use: " + Screen.width + " " + Screen.height); } else { // Load saved resolution Resolution[] resolutionsAll = Screen.resolutions; Screen.SetResolution(resolutionsAll[settings.videoSettings.screenResolution].width, resolutionsAll[settings.videoSettings.screenResolution].height, settings.videoSettings.fullscreen); //Debug.LogError("Load saved resolution. Use: " + resolutionsAll[settings.videoSettings.screenResolution].width + " " + resolutionsAll[settings.videoSettings.screenResolution].height); } settings.videoSettings.screenResolution gehört zu deinem DropDown Feld mit den möglichen Monitorauflösungen. Der ausgewählte Wert ist screenResolution. Alle Einstellungen speichere ich in einer Datei. Wenn ich also das Spiel das erste mal starte ist screenResolution immer 0, was auch funktioniert. Er holt sich Screen.with und Screen.height. Auf meinem Monitor wäre das dann 1920 x 1080. Mit der Zeile ändere ich die Monitorauflösung: Screen.SetResolution(resolutions[resolutionSelect.value].width, resolutions[resolutionSelect.value].height, fullscreenToggle.isOn); Jedes mal wenn ich den Settings etwas ändere wird die Datei überschrieben, funktioniert ebenfalls. Wenn ich nun die Datei lösche sollten eigentlich alle Werte gelöscht sein und das Script die Default Werte nutzen. Funktioniert aber nicht! Er löst zwar in den Settings diese Bedingung aus: if(settings.videoSettings.screenResolution == 0) { // No resolution is specified, the standard monitor resolution is used. Screen.SetResolution(Screen.width, Screen.height, settings.videoSettings.fullscreen); //Debug.LogError("No specified resolution. Use: " + Screen.width + " " + Screen.height); } Problem daran ist, dass die Klasse Screen den letzten Wert speichert. Habe ich also zuletzt mit Screen.SetResolution 800 x 600 angegeben, lösche die Datei und starte das Spiel wieder zum ersten mal, wird nun nicht meine wirkliche Monitorauflösung von 1920 x 1080 genutzt sondern weiterhin 800 x 600. Irgendwie speichert sich Screen.Setresolution den letzten Wert. Ändere ich den Code so ab: if(settings.videoSettings.screenResolution == 0) { // No resolution is specified, the standard monitor resolution is used. Screen.SetResolution(1920, 1080, settings.videoSettings.fullscreen); //Debug.LogError("No specified resolution. Use: " + Screen.width + " " + Screen.height); } Habe ich das Problem nicht, da ich ja mit den festen Werten von 1920 x 1080 arbeite. Ich müsste also irgendwie verhindern, dass Screen sich Werte speichert.
  3. Hat sich erledigt. Wurde durch einen anderen Fehler ausgelöst.
  4. Hi! Ich habe einen Fehler der mir gerade alles zuspamt: "Game object with animator is inactive" Ich habe ein Parent welches Kindobjekte deaktiviert. Die Kinder an sich sind Vögel und haben ein Steuerscript und eine Animator Komponente. Das Parent legt fest wie viele Kinder per Zufall gespawnt werden. Alle anderen werden deaktiviert. Problem ist nun bei den Kindern diese Fehlermeldung. Egal ob ich nur das Kind deaktiviere oder Kind samt Animator. Fehlermeldung bleibt. Hat einer eine Idee wo das Problem ist? Grüße von Kojote
  5. Hi! Mit der letzten und vorletzten neuen Version von Unity 2020 habe ich wunderbare zufällige Fehler bekommen: (0,0): error System.IO.IOException: Sharing violation on path C:\Users\User\Documents\Project\Temp\Assembly-CSharp.dll Es kommen einige Fehler aus dem Temp Ordner, immer mit Sytsem.IO.IOException. Ich muss Unity neustarten, denn sind die Fehler weg. Leider kann ich auch nicht sagen wodurch sie ausgelöst werden, da sie zufällig erscheinen. Hat jemand die selben Probleme oder eine Lösung dafür? Grüße von Kojote
  6. Hallo! Ich habe ein Problem, das ich mir nicht erklären kann. Nennen wir es einfach "Bewegliche Schattenkante im Terrain". Wenn ich mich dem Terrain nähere, gibt es einen kreisförmigen Farbunterschied im Terrain. Je näher ich komme, desto größer wird er. Wenn ich auf dem Terrain stehe, ist es etwa 300 m entfernt. Denselben Effekt habe ich auch im Editor, wenn ich hinein- und herauszoome. Kann mir jemand sagen, woran das liegt? Bei Bild 4 sieht man es am besten.
  7. Hi! Ich habe mein Projekt von BuildIn zu URP 10.8 gewechselt. Die Umstellung der normalen Materlianien funktionierte gut. Nur die Partikel machen eine Menge Probleme. Wie hier am Bild zu sehen: Rechts Original, Links Nachbau. Selbe EInstellungen, nur wird links nichts angezeigt. Hat jemand eine Idee?
  8. Hi! Ich hab mich mal wieder mitd em Frame Debugger beschäftigt, da ich an einer Stelle einen plötzlichen Performanceeinbruch in der Map habe, den ich mir nicht erklären kann. Im Debugger habe ich eine rießige Liste mit "Draw Mesh". Keine Infos und nichts dazu. Was ist das? Liegt dies an Vegetation Studio oder ist das ein Fehler?
  9. Hi Leute! Ich habe eine Nvidia GForce GTX 970. Keine neue Grafikkarte, schon etwas älter. Aber man kann damit spielen. Meine Scene: 516 Batches 72.500 Tris 66 FPS (16 ms) Von den 16 ms heb ich allein schon 8 ms Gfx.WaitForPresentOnGfxThread und noch einmal fast 2 ms ParticleSystem.WaitForPreMapping. Sprich knapp über 10 ms wartet die CPU auf die GPU. Wäre die GPU schneller wären wir bei 6 ms was auch bei dem Terrain ein guter Wert wäre. Dabei habe ich nur mein Terrain und ein paar Büsche und Steine verteilt. Ich habe noch keinen Fog an und keine Bäume. Wenn ich diese einfüge komme ich wieder einmal unter 40-50 FPS und das ist für die wenigen Polys und wenigen Landschaftsobjekte echt wenig. Ist meine Grafikkarte einfach dermaßen schlecht oder habt ihr eine Idee was hier falsch läuft? Mir fällt echt nicht mehr ein wo ich noch sparen soll. Ich nutze Static, Instant Indirect, sparsame Shader und so weiter. Die paar Polys sind ein Witz und das was in der Landschaft zu sehen ist. Ich könnte noch etwas Performance heraus holen indem ich die Schatten deaktiviere, aber das nimmt der Landschaft alles. Gfx.WaitForPresentOnGfxThread sagt ja aus das die CPU auf die GPU wartet. Aber mal ehrlich, die Grafikkarte schafft moderne Spiele in einer guten Auflösung zu verarbeiten. Und bei den paar Steinen und Büschen in der Landschaft soll es meine Grafikkarte nicht mehr schaffe? Ich hoffe ihr könnt mir weiter helfen. So kann keiner das Spiel spielen. Grafikkartenliste: https://www.pc-erfahrung.de/grafikkarte/vga-grafikrangliste.html Nach der Liste liegt mein Karte auf Rang 49. Das Spiel soll für Gelegenheitsspieler sein, die keinen starken Rechner haben. Deswegen bin ich auch extrem Sparsam mit Polys und der gleichen. Die fertige Scene hat weniger als 90.000 Polys. Da nützt mir aber mein Polygespare nichts, wenn die Leistung wo anders fehlt. 😕 Oder liegt es an 3 Monitoren und die Grafikkarte kommt an ihre Grenzen?
  10. Hi! Mal zur Abwechslung eine Frage zu Partikeln. Ich habe einen Steppenläufer: Dieser soll über das Terrain herum kugeln. Problem ist, er kugelt nur gerade aus und passt sich dem Terrain nicht an. Ich habe deswegen eine Collision eingestellt, hier kommt er dank des Bounce einen kleinen Schub nach oben. Problem ist, ein wenig zu viel: Habt ihr eine Idee wie man den Partikel an das Terrain anpassen kann? Ansich ist der Partikel ein Mesh. Man könnte auch ohne Partikelsystem arbeiten. Die Frage ist halt, wie er dann vom Wind beinflusst werden könnte.
  11. Hat sich geklärt, habe nun für jedes Wasser einen Shader genommen.
  12. Hi! Für eine Unterwasserlandschaft wollte ich gerne einen Caustic Shader nutzen und mit einem Projector Unterwasser nutzen. "Problem" ist, im Shader ist angegeben ab welcher Höhe der Shader funktionieren soll. Da ich aber mehrere Seen habe, die auf unterschiedlicher Höhe sind, habe ich nun ein Problem. Ich könnte nun acht mal den selben Shader nutzen und in jedem Shader eine unterschiedliche Höhe ansetzen. Irgendwie unschön. Gibt es da noch eine andere Möglichkeit über den Projektporter? Grüße v. Kojote
  13. Hi! Ist es eigentlich normal, dass sich das Gras im Wind nicht bewegt, wenn der Charakter sich bewegt oder ist das ein Fehler? Grüße von Kojote
  14. Hi! Noch ne Frage. Ich versuche gerade einen Mouse Orbiter zu erstellen. Zoom In, Zoom Out und die Rotation funktionieren eigentlich. Problem ist, dass ich nur die X- und Y- Achse drehen will, nicht aber die Z-Achse. Die Update-Methode sieht so aus: private void Update() { if(Time.timeScale == 0) return; // ------------------------------------------------------------------------------------ // STEUERUNG DES ZOOMS, ABHAENGIG VOM MAUSRAD // ------------------------------------------------------------------------------------ if(Input.GetAxis("Mouse ScrollWheel") != 0f) { float scroll = Input.GetAxis("Mouse ScrollWheel"); float step = scrollSenstivity * Time.deltaTime; cameraDistance = Vector3.Distance(transform.position, cameraTargetTransform.position); if(scroll > 0f && cameraDistance > cameraDistanceMin) { transform.position = Vector3.MoveTowards(transform.position, cameraTargetTransform.position, step); } else if(scroll <= 0f && cameraDistance < cameraDistanceMax) { transform.position = Vector3.MoveTowards(transform.position, cameraTargetTransform.position, step * -1); } transform.LookAt(cameraTargetTransform); } // ------------------------------------------------------------------------------------ // STEUERUNG DER KAMERADREHUNG // ------------------------------------------------------------------------------------ if(Input.GetMouseButton(0)) { rotation.x -= Input.GetAxis("Mouse X") * mouseSensitivity; rotation.y += Input.GetAxis("Mouse Y") * mouseSensitivity; if(cameraRolloverDeactivate) { if(rotation.y < cameraDistanceHorizonMin) rotation.y = cameraDistanceHorizonMin; else if(rotation.y > cameraDistanceHorizonMax) rotation.y = cameraDistanceHorizonMax; } transform.RotateAround(cameraTargetTransform.position, Vector3.up, -Input.GetAxis("Mouse X") * mouseSensitivity); transform.RotateAround(cameraTargetTransform.position, Vector3.right, -Input.GetAxis("Mouse Y") * mouseSensitivity); transform.RotateAround(cameraTargetTransform.position, Vector3.forward, 0); } } Habt ihr eine Idee wie ich die Z-Achse auf 0 halten kann?
×
×
  • Create New...