Jump to content
Unity Insider Forum

MaZy

Members
  • Content count

    512
  • Joined

  • Last visited

  • Days Won

    13

MaZy last won the day on September 18 2018

MaZy had the most liked content!

Community Reputation

153 Excellent

About MaZy

  • Rank
    Advanced Member
  • Birthday 02/20/1988

Profile Information

  • Gender
    Male
  • Location
    Hannover

Recent Profile Visitors

8,537 profile views
  1. MaZy

    Spieleranzahl auf Server

    Weil Network.Connections nicht zu Unet gehört. Man kriegt das mit NetworkServer.connections raus. Wenn du NetworkManager benutzen tust und wissen willst wie viele Spieler(objekte) gespawnt sind, dann: NetworkManager.numPlayers Welche Unity version benutzt du? Weil UNet ist ab 2018.3 veraltet.
  2. Würde mal zu Mirror wechseln, was ja in Discord auch genannt wurde, da UNet bald veraltet ist und nicht weiter entwickelt wird: https://forum.unity.com/threads/mirror-networking-for-unity-unet-replacement.425437/ Zu logs.. such einfach mal Console script oder so für Unity. Da gibt es so fertig dinger wo man die console anzeigen lassen kann im Spiel und dann siehst du was passiert ist. Ansonsten adb.exe funktionen googlen und damit vom handy die outputs zu applications sehen kannst. Man kann da unity rausfiltern, damit man es angenehmer hat. Große Spiele wie World of Warcraft sollen angeblich TCP benutzen. Auch angeblich Minecraft soll TCP benutzen. UDP hat ja mit heuten Technologie die Vorteile wie bei TCP eigentlich, weil ja sowas wie reliable gibt, dennoch wird TCP immer noch ab und zu gerne benutzt.
  3. MaZy

    Controller einrichten?

    Also wie Sascha das schon sagte, sieht es so aus, ob im Code Input.GetAxis("horizontal") verwendet wird. Kannst ja mal alles durchgehen bzw. nochmal im Code gucken, ob man versehentlich selbst was rein geschrieben hat.
  4. MaZy

    Editor

    Wenn ich richtig verstanden habe, dass mehrere Scripte gleichzeitig minimapTypeChoice und gleichen Wert haben sollen, dann kannst du static variable benutzen. Weil du sagtest ja, dass es vergessen wird. Bei static sollte das nicht passieren
  5. MaZy

    Von A - Z zum eigenen Spiel

    Ja, wenn du nicht vorhast Geld zu verdienen. Damit meine ich nicht mit Gedanken so denken, aber trotzdem Werbung einblenden. Sobald die Absichten mit Geld verdienen offensichtlich sind (damit mein ich Werbung einblenden und trotzdem den Gedanken haben "wird eh nix"), musst du Gewerbe anmelden. Du kannst dir bei Finanzamt so ein Heftchen geben lassen, wo einige Seiten sind. Da wird dir bereits vieles erklärt. Man braucht keine Angst zu haben vor einer Gewerbeanmeldung. Als Kleinunternehmer musst du fast nicht mal Buchführen (zu mir meinten die, dass ich damals aber T-Bilanz aufstellen musste - einfach nur Ausgaben - Einnahmen = Gewinn. Das wars. Damals hab ich so Handel über Ebay betrieben ). Impressum muss da angegeben werden, wo etwas Angeboten wird. In dem Fall, wenn es um eine Downloadseite geht wie Play Store, dann wird auf deiner Seite Impressum angegeben. Google haftet dafür nicht nebenbei, sondern du. In der App, ob da muss, weiß ich nicht. Kann das da nicht so rauslesen. Das Problem ist, dass z.B. meine Apps auch auf einigen anderen Seiten verfügbar gemacht wird, ohne dass ich das eigentlich beauftragt habe. Heißt Drittanbieter-App-Stores haben vllt. meine App, aber eventuell ohne mein Impressum. Wenn du nichts speicherst nein. Kannst aber trotzdem machen und zumindest erwähnen, dass du nichts speicherst. Bedenke: Unity Analytics, Ads usw. benutzen die Nutzenuserdaten und speichern sie. Dann musst du auf jeden Fall zu mindest deren Datenschutzerklärung als Verweis in deinen vermerken. Zum Beispiel Google Ads, Unity Ads, Unity Analytics. Mittlerweile wird auch standardmäßig Datenschutzerklärung in Apps mit eingebaut als Link zur einer Seite, dass man es akzeptieren soll, wenn man weiter machen möchte. Allerdings einmalig und bei Veränderungen als Hinweis nochmal. (Wobei bei dir nochmal 3 steht) Der Unterschied wäre nur Gewerbe, dass man es nicht braucht, wenn man keine Einnahmen erzielt. Alles andere muss beachtet werden. Sowas packt man in seine AGB rein und lässt Leute akzeptieren, dass DU keine Haftung übernimmst. Das ist sehr wichtig. Denn man könnte einfach das Spiel oder das Programm modifizieren und behaupten, dass es so war. Ist sehr schwer nachvollziehbar (aber logisch. Wenn er nur selbst hat und sonst niemand, dann ist klar, dass es nicht an den Entwickler liegt). Erinnere dich an die Katze in der Mikrowelle. Die Kläger haben gegen die Mikrowellen-Hersteller gewonnen, weil sie nicht angegeben haben "Keine Katze in der Mikrowelle". Mittlerweile tun sie das. Aber grob genannt Keine lebendigen Tiere in die Mikrowelle. 🤣
  6. MaZy

    Datenbankabfrage mit Php

    PDO ist gewöhnungsbedürftig, aber übelst gut. Kannst aber auch mysqli benutzen: http://php.net/manual/de/mysqli.quickstart.connections.php
  7. MaZy

    Terrain Tree chopping - Collider baked?

    Einfach die Prefabs vorladen und nicht immer instantiate benutzen oder so. Falls das trotzdem sehr high Poly ist, kann das natürlich beim Aktivieren trotzdem einfrieren. Ich meine aber, dass das einfrieren von der Prefab-Speichergröße oder Model-Speichergröße auch kommt. Tarantel muss ich da zu geben. Ich hab mal auch an sowas rangemacht und selbst Platzierte waren mir lieber, weil damit echt vieles erleichtert wird. Nur das Platzieren ist natürlich nervig.
  8. @GekkoState wenn es darum geht, dass du Network kennen lernen willst, dann kannst du da benutzen was du willst. Ich hab damals zum Beispiel ein Chatprogramm geschrieben. Das wurde sogar in der Schulzeit benutzt, weil wir in getrennten Räumen (Gruppen) waren und haben da zusammen dann sogar geschrieben. Ist zwar nicht das selbe wie mit Spielen, aber man versteht was da passiert. Allerdings hab ich da AutoIt benutzt. Wenn man nun sowas wie Lidgren Network, oder C# pure TCP usw benutzt kann es bisschen schwerer werden. Ansonsten ran an UNet. Wirst schon irgendwann an Schwierigkeiten stoßen, die vllt bei der neuen System helfen könnten. UNet hat leider wirklich wie andere schon sagen ein paar Macken, wenn man was komplexes machen wollte. Beispiel bei mir: Die Networkmanager waren nicht so immer modifizierbar. Man musste total tricksen. Da wollte ich mal Characterauswahlbildschirm machen mit NetworklobbyManager. So ähnlich wie das Spiel Alien Swarm oder Left 4 dead, wo man im Lobby ist, aber Karte nicht geladen wurde. Ich musste leider teilweise aus dem Sourcecode Methoden kopieren damit ich sie bearbeiten kann oder ganz musste neu implementieren. Das war schon echt schwierig. Viele schlugen mir vor, dass ingame zu machen. Quasi ein Prefab im Spiel "spawnen" und dann erst Charakter wählen. So wollte ich das aber nicht ^^. Tarantal, man ist nie auf den Masterserver von Unity angewiesen. UNet ist so aufgebaut, dass man eigenen Masterserver haben kann. Du kannst sogar ganz normal mit TCP arbeiten oder mit PHP oder mit vielen anderen Dingen um einen Masterserver zu programmieren. Da gibt es sogar einige Beispiele (inklusiv meine, vllt sende ich hier später ein Video). Dazu hatte ich mal nen Tutorial angefangen, wo ich sogar als Beispiel einen GTA 5 Server Emulator genommen habe, wo ich mitgeholfen hatte. Da hat man auch Masterserver entwickelt. Und wenn man ganz Faul ist kann man ca für 12 Euro sogar sowas holen. https://assetstore.unity.com/packages/tools/network/match-up-104411 Das einzige Problem wäre das mit dem NAT, aber für gibt es ein paar Dinge im AssetStore die glaub ab 10 Euro anfangen.
  9. Meshs haben Faces die nur in eine Richtung gucken. Das heißt, wenn es eine "Platte" ist (in Unity mein ich Plate), dann hat man nur in eine Richtung ein Face. Wenn man gegenübersteht, dann sieht man auch diesen Mesh. In mehrere Richtung guckt z.b. die Box in Unity3D. Hat ja alle Seiten ein Face. Bei dem Haus oder was das sein soll sieht zu mindest im Video so aus, dass es "innen" nicht gibt. Musst mal schauen, ob du in Unity ohne in playmode zu sein, ob man innen Räume sehen kann.
  10. MaZy

    Unreachable code detected

    Compiler führt es immer perfekt aus nur wie wir vorgehen kann falsch sein // Ein Beispiel was ähnlich ist, aber wo compiler nicht meckert. // Beispiel: OnHit(40); // Problem Beispiel: void OnHit(float damage) { if(damage <= 50) { ReportLowDamageHit(); return; } // Wird bis hier niemals ausführen, obwohl die die Funktion "perfekt" ist und tut was es tun soll. // denn damage wenn es unter 50 ist.. wird oben immer abgebrochen. Naja aber ReportNoDamageHit() wird aber nie ausgeführt. // Obwohl damage 70 sein könnte.. dennoch ist es hier unten unbrauchbar.. wird nie reingehen. // Compiler wird aber nicht meckern, da ja denkt.. mit über 50 wirst du dahinten ankommen. Nur nie in den If rein. if(damage <= 0) { ReportNoDamageHit(); return; } } //Lösung Beispiel 1 void OnHit(float damage) { // Wird nicht ausgeführt, da damage = 40 is aber wäre es 0 würde es funktionieren. if(damage <= 0) { ReportNoDamageHit(); return; } if(damage < 50) { ReportLowDamage(); return; } } Beispiel 2 void OnHit(float damage) { // Sieht wie das Problem Beispiel an.. nur dass wir hier sagen, dass es zwischen 0 und 50 (1 bis 49) gecheckt werden soll. if(damage > 0 && damage < 50) { ReportLowDamageHit(); return; } if(damage <= 0) { ReportNoDamageHit(); return; } }
  11. Gute Frage nächste Frage . Wie es aussieht findet der Editor die Komponenten dazu nicht Hast du zufällig auch mit Unity Hub ausprobiert? Würde ich sogar empfehlen es zu benutzen. Ansonsten in Unity Ordner mal überprüfen ob Linux Ordner existiert: UNITY_ORDNER\Editor\Data\PlaybackEngines\ -> LinuxStandaloneSupport EDIT: Da drinne sind nochmal ordner z.b. für headless version usw. EDIT2. Übrigens überprüfen, ob du auch im richtigen Editor drinne bist (Versioncheck).
  12. MaZy

    Unity und Steamworks (steam_api.dll)

    Aso hab es überlesen ^^
  13. MaZy

    Unity und Steamworks (steam_api.dll)

    Es gibt auch ein von Garry Newman welches er für das Spiel Rust benutzt. https://github.com/Facepunch/Facepunch.Steamworks EDIT: Allerdings seit knapp ein Jahr keinen neuen Release außer Github updates, welches 2 Monate alt ist. Muss zugeben, dass ich nicht alles getestet habe (auch mit Spacewar), aber manche Dinge fand ich bei Facepunch besser.
  14. MaZy

    Mehrere Game-Rooms

    Das hört sich nach einen Masterserver an. Wenn du Headless Server meinst ja. Tatsächlich ist es wirklich so, dass man jedes mal einen neuen Prozess also einen neuen Server mit anderen Port startet. Anders weiß ich auch nicht. Zu mindest tut Valve so bei Dota 2. Allerdings geht es bei größeren Spielen nicht ohne mehrere und leistungsvollen Server. Bei Performance kann man auch Amazon Server benutzen Die sind sehr dynamisch und dort werden ja die Ressourcen je nach Bedarf erhöht. Natürlich auch die Kosten. Mehrere Unity Prozesse pro Instanz (Amazon Server).
  15. MaZy

    Verbindung Server zum Handy

    Wenn es tatsächlich um Client-Server Modell geht, dann geht das mit den Nummern nicht. Geht es aber darum, dass man das Spiel startet (in Sinne von App öffnen) und man lädt Daten aus dem Datenbank runter (also keine Sockets (realtime Datenaustausch) werden aufgebaut), dann müsse das gehen (Man braucht natürlich immer noch einen Server ^^) Ja genau. Die Apps fragen ständig (vielleicht alle paar Sekunden) den Server nach dem Status (Gibt es eine neue Nachricht etc.). Deswegen ist es auch zwingend notwendig dass man Apps im Hintergrund weiter laufen lässt und so machen es die Apps ja auch auf Android und iOS Das ist ne gute Theorie, aber so weit ich weiß läuft das nicht so. So wie ich das damals entnommen habe läuft das bei Android Systemen zu mindest anders. Die Apps müssen auch NICHT im Hintergrund laufen. Ich beziehe mich hier auf Android Apps die mit GCM (Google Cloud Message - z.B. für Push Notification) funktionieren. Im Hintergrund läuft ein Prozess ich glaube sogar von Google Play der immer auf eine Verbindung wartet bis Google Server sagen "wir verbinden uns jetzt mit dir". Das heißt du verbindest dich nicht (sendest aber einmalig, dass du online gegangen bist). Kannst quasi wie ein Server auf dein Handy sehen. Jedes mal also, wenn die Verbindung bricht, versuchen Google Server, wenn sie es benötigen, eine Verbindung mit dir aufzubauen. So. Sobald einer eine Push Nachricht sendet geht es erst zu Google Servern und von dort aus wird an dich weiter geleitet (und ggf. Verbindung aufgebaut). Jetzt sucht dein Handy nach bestimmten Subscription sowas wie com.whatsapp.event.messagenotifcation oder sowas. Hat man das.. wird die Push-Nachricht angezeigt. Allerdings weiß ich nicht, ob google erst mal sagt "hey, hab ne push nachricht an dich für event com.whatsapp.event.messagenotifcation" und du sagst "hey hab das sogar als event bei einer app subscriped" und kriegst dann erst nachträglich die Nachricht geschickt oder dass du sofort die Nachricht bekommst und dein handy halt guckt, ob du überhaupt anzeigen kannst. Kann auch sein, dass google irgendwie auch intern registriert, dass du es empfangen darfst. Ich hab nen Iphone5 (naja mittlerweile seit paar Wochen meine Mutter hat das jetzt) und Samsung Edge S6. Beide hatten die gleichen Apps und account. Als ich Iphone 5 nach vieeeelen Monaten gestartet habe.. habe ich all die Push Notifications nachträglich bekommen, die ich bereits schon mit mit meine Samsung bekommen habe. Ich glaube daher, dass man eher auf den google servern sich "registriert", dass man etwas empfangen möchte. Hey aber nicht verwechseln mit den LOKALEN Notifcations. Das gibt es ja auch. Da braucht man kein Google Cloud Server. Man kann daher eigentlich sowas selbst basteln, aber da müsste die App tatsächlich im Hintegrund laufen. Allerdings weiß ich zu mindest bei Unity, dass die Verbindung irgendwann abbricht, wenn es im Hintergrund ist. Vllt ist das mittlerweile anders.
×