Jump to content
Unity Insider Forum

runner78

Members
  • Content count

    106
  • Joined

  • Last visited

  • Days Won

    7

runner78 last won the day on January 18

runner78 had the most liked content!

Community Reputation

21 Excellent

About runner78

  • Rank
    Advanced Member

Recent Profile Visitors

840 profile views
  1. runner78

    Texturen Scalieren/ (Resize)

    Texture2D hat übrigens die nützliche Methode "Resize": https://docs.unity3d.com/ScriptReference/Texture2D.Resize.html
  2. runner78

    Scriptable Objects oder JSON?

    Ein Vorteil für JSON wäre eventuell ein einfacher Mod-Support .
  3. runner78

    Codebeurteilung: Mouse Orbit und Zoom

    Link habe ich Grad keinen, aber z.B ECS benutzt den C# Standard (mit Ausnahme der neuen "math" Bibliothek)
  4. runner78

    Codebeurteilung: Mouse Orbit und Zoom

    Unity will sich jetzt ja auch an die C# Standard halten, aber um nicht alles zu mischen, haben sie sich entschlossen im "alten" Namespace (UnityEngine/UnityEditor) den alten Stil zu verwenden, im neuerem "Unity" Namespace sich an den Standard zu halten.
  5. runner78

    C# und PHP Upload

    Mit var_dump() oder var_export() kannst du dir den Inhalt von $_FILES ausgeben, praktisch für schnelles debuggen. Ich hoffe du baust da auch eine Validierung ein, die speicherst eine Datei ohne zu überprüfen ab, da kann alles drin sein, und dazu hast du auch indirekt den Link zu deinem Script hier gepostet. Ich habe zum Test eine Textdatei gepostet, gab keine Fehler Das WWW System von unity ist veraltet, es gibt ein neueres System: https://docs.unity3d.com/Manual/UnityWebRequest-SendingForm.html
  6. runner78

    Spieleranzahl auf Server

    Die HLAPI von UNet wird zukünftig als externes Paket ausgelagert, und hat bis 2021 Support, aber keine neue Features. Die LLAPI wird im laufe des 2019.x Zyklus von Unity entfernt, sobald die neue API stabil genug ist. Eventuell gibt es einen Wrapper für die HLAPI. Die HLAPI wird nicht ersetzt, stattdessen wird es eine Reihe von Paketen geben.
  7. Bei WoW wird glaube ich beides verwendet. Bei TCP wird sichergestellt, dass Daten-Pakete in der richtigen Reihe auch wirklich ankommen. Das beuteutet auch, das der Server warten muss bis der Empfänger zurückgibt das das Paket gekommen ist, und im schlimmsten Fall das Paket nochmals senden, wenn es verloren geht. Dadurch entsteht eine nicht unerhebliche Zeitverzögerung. TCP hat auch einen größeren Header und braucht deshalb auch mehr Bandbreite. UDP schickt einfach die Pakete ohne sicherzustellen ob und in welcher Reihenfolge die Pakete ankommen. Z.B. bei Spielerpositionen kann es auch mal egal sein wenn mal ein Paket verloren geht. Während bei TCP der Server das mittlerweile veraltete Paket nochmal schicken muss, hat bei bei UDP der Client vermutlich bereite aktuellere Pakete erhalten. TCP macht dann Sinn wenn Performance keine Rolle spielt, und man Sicher gehen will, dass die Daten auch ankommen, z.B beim Senden von Benutzereingaben zum Server. Beim FPS Example wird übrigens beim Senden von Benutzerangaben auch die Versionsummer des letzten empfangenen Paketes mitgesendet, somit weiß der Server wann der User eine Aktion ausgeführt hat und passt die Server Simulation Rückwirkend an.
  8. UNET verwendet UDP, nicht TCP (bei Multiplayer üblich). UDP ist schneller, allerdings kann es zu Packetverlusten kommen. Wenn ich mich richtig erinnere, wird beim FPS example jedem Paket eine Versionsnummer mitgesendet.
  9. runner78

    Performance ruckelt

    Stimmt nicht, Formate wie DXT liegen auch komprimiert im Grafikspeicher, genau dafür sind solche Formate gemacht.
  10. runner78

    Datenbankkommunikation

    Das liegt dann daran, das dein Input nur funktioniert wenn er durch 3 Teilbar ist.
  11. runner78

    Datenbankkommunikation

    Wenn du 2 Gruppen von 3 Elementen in dem Array hast, dann hat das Array einen index range von 0 - 5 Bei ersten Durchlauf wird Index 0, 1 und 2 als Daten für den Score verwendet. dann nach wird i auf 2 gesetzt. 2 ist kleiner als die Länge des arrays, also nächster Durchlauf: Bei zweitem Durchlauf wird Index 2, 3 und 4 als Daten für den Score verwendet. dann nach wird i auf 4 gesetzt. 4 ist kleiner als die Länge des arrays, also nächster Durchlauf: Bei dritten Durchlauf wird Index 4, 5 und 6 als Daten für den Score verwendet. 6 ist aber außerhalb des ranges des arrays und du bekommst einen Fehler. Versuch mal: // Daten-Objekte füllen void FillHighscore(string[] input) { highscore.Clear(); int length = input.Length; for (int i = 0; i < length; i+=3) { Score score = new Score(); score.email = input[i]; score.PlayerName = input[i+1]; score.Points = input[i+2]; highscore.Add(score); } }
  12. runner78

    Datenbankabfrage mit Php

    Um genau zu sein vor 5 Jahren mit PHP 5.5.0 als veraltet markiert und vor 3 Jahren mit PHP 7.0.0 entfernt. Man sollte beim googlen vielleicht auch auf das Alter diverser Anleitungen schauen. Ich würde aber generell zum Gebrauch von etablierten Bibliotheken raten, wie doctrine https://www.doctrine-project.org/
  13. runner78

    Codeüberprüfung und Feedback gesucht!

    "Einbrüche" ist relativ, ich habe eine schnelle CPU und SSD, da hatte ich fast konstant bei 70-80 fps. Es gab aber manchmal spikes mit 15 fps. Bei schächeren PCs oder verallem Mobile, da könnte die Framerate etwas problematischer werden. Mit Visual Studio kannst du auch Teile des code automatisch in neue Methoden auslagern. Sie dir auch an ob die wiederholende Code-Bereiche hast, dann kann man dann gut ein eine einzelne Methode zusammenfassen. Ich kenne mich mit UNET jetzt nicht aus, aber ich habe gesehen du benutzt ja Network Identity, das ist aber Teil der high-level API und hat mit low level nichts zu tun. So ein Kartenspiel könnte man auch sehr gut mit ECS/C# Jobs und dem neuen Unity Networking performant realisieren.
  14. runner78

    Codeüberprüfung und Feedback gesucht!

    Wie gesagt, netwoking kenne ich mich nicht so aus, allerdings würde ich hier einen anderen Ansatz wählen. Trenne Die Darstellung und die Spiellogik. Die Animationen sind bei allen die selbe, das musst du nicht per Netzwerk synchronisieren. Ein Ansatz wäre (cheating sicherer): Nur der Server kennt alle Karten Ein Spieler Client kennt nur die Karten die aufgedeckt sind. Ein Client sagt dem Server den nächsten Zug Der Server sagt dem anderen Client das Ergebnis. Animationen und visuelle Positionen der Karten simulieren die Clients lokal. Änderungen gehen beim beenden verloren, sie eigenen sich daher für Einstellungen die du im Editor machst, oder auch um Daten zwischen verschiedenen Gameobjects/Komponenten auszutauschen.
  15. runner78

    Performance in Unity3D

    Für Leute die sich weniger mit der Zukunft von Unity beschäftigen mal ein kleines update zur Performance von Unity die zukünftig mit ECS Möglich ist. Zur Unite LA 2018 hat Unity eine Demo Project Vorgestellt namens Megacity, die Eckdaten der Scene: 4.500.000 Mesh renderer 100.000 individuelle Audioquellen 5.000 dynamische Fahrzeuge Constant 60 fps https://www.youtube.com/watch?v=j4rWfPyf-hk
×