Jump to content
Unity Insider Forum

MaZy

Members
  • Content count

    508
  • Joined

  • Last visited

  • Days Won

    13

MaZy last won the day on September 18

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,280 profile views
  1. 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. 🤣
  2. 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
  3. 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.
  4. @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.
  5. 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.
  6. 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; } }
  7. 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).
  8. MaZy

    Unity und Steamworks (steam_api.dll)

    Aso hab es überlesen ^^
  9. 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.
  10. 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).
  11. 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.
  12. MaZy

    Gegenstände aufheben

    An einem GameObject binden hört sich jetzt so an, als meintest du einfach das Gegenstand den Parent setzen. gegenstand.transform.parent = GameObject. Sonst weiß ich jetzt nicht genau was du meinst.
  13. Bei sowas sollte man sich fragen, wie ich das als Mensch erst mal verhindern würde. Genau wir betrachten das erste Objekt und dann das zweite Objekt und sehen ist gleiche Höhe. Also dazu etwas addieren. Programmiertechnisch wäre das einfach die Y vom letzten merken und schauen, ob das neue den gleichen Wert hat. Wenn ja kannst du addieren oder wieder randomen wie auch immer.
  14. Warum werden rechts unten nicht mehr die neusten Blogeinträge angezeigt? ich fand das schon manchmal interessant hier das zu lesen, wenn jemand ein Blogeintrag gemacht hat.

    1. Show previous comments  3 more
    2. Sascha

      Sascha

      @MaZy Tatsächlich... Wonach zum Geier sortiert das Ding...?

    3. MaZy

      MaZy

      @Sascha Sorry bin kein Admin. Da müsste ich @Sascha fragen.

    4. Sascha

      Sascha

      Hi, ich hab mir das mal für euch beide angesehen und mein Ergebnis ist "Die Software ist komisch".

  15. Ist bissel her, aber... Der Masterclient könnte die Zahl merken. Einmal hat er sowas wie networkCountdown und einmal masterClientCountdown. Er denkt über den logischen Teil und updatet masterClientCountdown (also irgendein Client muss das eh machen), und macht dann irgendwas wie RPC("UpdateTimer", RPCTarget.AllViaServer, masterClientCountdown), damit alle gleichzeitig (je nach Ping ) bekommen. ja und nun muss jeder inklusiv Masterclient networkCountdown aktualisieren. Du meinst Custom Properties. Kann man auch. Das ist sogar interessanter, wenn jemand nachträglich joined, dass es gesynced wird. Da arbeitest du mit hashtable von Photon selbst. Dann einfach die Werte packen und aktualisieren. https://doc.photonengine.com/en-us/pun/current/gameplay/synchronization-and-state
×