Jump to content
Unity Insider Forum

MaZy

Members
  • Content count

    514
  • 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,763 profile views
  1. MaZy

    C# und PHP Upload

    Weil es mich selbst interessiert hab ich mir das mal angeguckt. WWWPost ist veraltet. Man soll UnityWebRequest benutzen. So sieht mein code aus: void Start() { StartCoroutine(Upload()); } IEnumerator Upload() { var url = @"URL_TO_UPLOAD"; var fileName = "myfile.txt"; var fileContent = System.IO.File.ReadAllBytes(@"assets\myfile.txt"); var fieldName = "userfile"; WWWForm form = new WWWForm(); form.AddBinaryData(fieldName, fileContent, fileName); UnityWebRequest www = UnityWebRequest.Post(url, form); yield return www.SendWebRequest(); if(www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); Debug.Log(www.downloadHandler.text); } } Etwas den code anpassen und den fieldName zu deinem ändern dann sollte es funktionieren.
  2. MaZy

    C# und PHP Upload

    Also ich hab mit PHP (nichts mit unity) sowas gemacht und da hab ich das hier stehen(gekürzt): <form enctype="multipart/form-data" method="post"> hast ja application/octet-stream ja stehen. Weiß nicht ob da unterschied macht. 2. Du solltest mit isset usw die Variable erst mal checken. Ein Beispiel von mir: <?php if (isset($_FILES) and isset($_FILES['userfile']) ) { if(UploadIsOk($_FILES['userfile']['error'])) { $filename = pathinfo($_FILES['userfile']['name'], PATHINFO_FILENAME); $extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION); move_uploaded_file(.... usw. Ansonsten var_dump ist wirklich wichtig und eine gute Idee das anzuwenden.
  3. 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.
  4. 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.
  5. 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.
  6. 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
  7. 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. 🤣
  8. 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
  9. 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.
  10. @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.
  11. 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.
  12. 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; } }
  13. 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).
  14. MaZy

    Unity und Steamworks (steam_api.dll)

    Aso hab es überlesen ^^
  15. 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.
×