• Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

MaZy

Members
  • Content count

    465
  • Joined

  • Last visited

  • Days Won

    10

MaZy last won the day on January 13

MaZy had the most liked content!

Community Reputation

143 Excellent

About MaZy

  • Rank
    Advanced Member
  • Birthday 02/20/1988

Profile Information

  • Gender
    Male
  • Location
    Hannover

Recent Profile Visitors

4,132 profile views
  1. Es gibt einen selbstprogrammierten Masterserver, der Matchmaking betreibt. Also eine Liste mit den ganzen Servern. Falls du den meinst der hat nichts mit autoritativer Server zu tun, da er in diesem Fall einfach nur Serverliste verwaltet.. Allerdings können Masterserver verschiedene Aufgaben haben. Je nachdem.
  2. Unity hostet keinen Server, sondern listet die ganzen Server nur. Daher nur Matchmaking soweit ich weiß. Das heißt, dass man ein "Server" besser finden kann und zusätzlich, dass man keine Portfreigabe Probleme hat. Autoritativer Server ist kurz gesagt, dass alles durch den Server gemacht wird, die per Anfrage gesteuert wird. Ein Beispiel: Client A auf dem Lokal-PC drückt "Vorwärts" sendet an Server ein Command(int x = 1, int y = 0), der Server bewegt Client A auf dem Server und sendet auch zu allem anderen, dass er ihn dahin bewegt oder bewegt hat ( je nach dem wie man programmiert). Client A auf dem Lokal-PC bewegt sich nun auch dahin. Natürlich kann man auch den Client auf dem Lokal PC während vorwärts drücken auch bewegen, aber je nach dem braucht man da Optimierungen. Wie beginnt man Einfach einen leeren Server starten, wo man nicht automatisch spawnt. Das ist bereits bei Unity UNet dabei. Der Server macht seine Commands und RPCs. Kannst ja mit was leichtem beginnen sowas wie. Command ColorMe(GameObject player) und der Server sendet dann ColorPlayer(Player, Color)
  3. Kommt drauf an. Mal so mal so. Für schnelle Sachen mache ich gerne health {get; private set;} oder sowas. Aber geht es bissel um etwas komplexeren, dann eher als eine Funktion. Ich muss zu geben, dass mich das etwas nervt, wenn ich manchmal extra zwei Variablen brauche. Beispiel Health soll nie negative Zahlen zurück geben. int m_health = 0; public int health { get { return Mathf.Max(0, m_health); } set { m_health = value; } } public int GetHealth() { return Mathf.Max(0, m_health); } public void SetHealth(int health) { m_health = health; }
  4. Hallo ich brauche etwas mehr Nebenverdienst. Falls ihr irgendwie Coder braucht dann meldet euch per PN thx.

  5. Ich glaube du musst CustomRoomPropertiesForLobby zusätzlich benutzen, wenn du von Lobby aus customProperties lesen willst. Ansonsten sind sie im Room nur verfügbar. Beispiel newOptions.CustomRoomPropertiesForLobby = new string[] {"HostName"}
  6. Hier was tolles umsonst im Asset Store http://u3d.as/bmx

    1. Show previous comments  2 more
    2. MaZy

      MaZy

      haha, ich habe mir schon gedacht, dass mindestens einen geben wird, der daran denken wird.

    3. devandart

      devandart

      Na dann gestehe ich auch. :D 

    4. Bastiuscha

      Bastiuscha

      Hatte mit dem Asset damals sogar ein kleines Spiel gemacht. Sehr Knuffig. "Simon and the Saucers" das Vorletzte unten auf meiner Seite, fals es interessiert. :) http://sebastiansell.bplaced.net/

      Dieser Style hat mich angeregt, selber so etwas zu machen.

  7. Viele vergessen, dass Photon verschiedenes anbieten. Sowohl ein Multiplayer (Dedicated) Server, sowohl auch Cloud Based Server. Ich denke mal hier geht es um den PUN mit Cloud Server. Photon ist meiner Meinung nach eher für Spiele mit Instanzen. Sprich: Man startet eine Runde, beendet, nächste Runde. Nachteil bei Photon ist wie immer Messages. Sie wollen das man eine bestimmte Anzahl übersteigt. Zu mindest weiß ich das von vor halbes Jahr noch so. Könnte sein, dass sich das geändert hat. Wenn ich so dein Plan anschaue, dann würden ich Photon Pun für so ein Projekt nicht benutzen. Da reicht UNet vollkommen aus. Oder Bolt, oder Forge Networking.. was auch immer. Ich habe einen Linux Root Dedidicated Server, wo ich bereits ein paar UNet Server laufen lassen habe. Es funktioniert gut. Allerdings war das nur eine Scene wo man bissel rumfliegen konnte mit einen Hover-Auto
  8. Kurz auf English Unity 5.6: 

     

    1. devandart

      devandart

      Sieht alles sehr gut aus.

    2. UnityWolle

      UnityWolle

      Jo, gefällt mir auch. 

       

  9. Meinst du einfach auf einem Server Unity Spiel als Server zu starten? Das geht. Hab schon mit den alten Networking gemacht und mit UNet ebenso. Man kann Unity Spielinstanz im Hintergrund starten. Je nach dem muss man natürlich anpassen was dann gestartet werden soll.
  10. Also so wie Sascha das schon beschrieben hat mit den Componenten mache ich auch. Ich lasse zwar vieles erben, aber je nach dem. Beispiel Entity <- Player | Enemy Aber sowas we HP und so weiter mache ich manchmal Seperate. HealthSystem oder DamageSystem. Später kann man sogar abfragen, ob so ein Komponent existiert, wenn nicht, dann bekommt das Ding einfach kein Damage. Wiederum frag ich auch da ab, ob man einen TeamScript hat usw. Ist schon echt Klasse mit den Komponenten zu arbeiten. EDIT: Was ich noch lustig finde es, dass man nach interfacen als Component suchen kann. Beispiel GetComponent<IDamageAble>(). Wenn es existiert dann gib ihn faust.
  11. Hallo ich benutze ScrollRect um eine Liste dazustellen. Wenn der User den Content ganz nach oben zieht, dann ist man ja über den eigentlichen Position und genau da möchte ich, dass man neue Sachen dazu "laden" kann, aber ich weiß nicht, wie ich sowas überprüfen kann. Bis jetzt hab ich nur "value" gefunden, aber der ist immer 0 obwohl der Scrollbar immer kleiner wird, wenn man weiter nach oben verschiebt. Ansonsten bewegt er sich von 0 - 1. Es müsste eigentlich in den negativen Bereich gehen, damit ich sagen kann ok der User hat es überzogen oder so. EDIT: Lösung gefunden: https://docs.unity3d...edPosition.html Die Zahl geht unter 0 oder über 1. Also kann man damit checken, ob man über die eigentliche Zahl ist. Dumm in der Dokumentation steht von 0 zu 1... daher hab ich nichts dabei erst gedacht!! EDIT2: Ok das geht doch nicht. Wenn vom scrollrect der Content nicht voll ist, dann ist es immer noch zwischen 0 - 1.... das ist doof.
  12. Du verwendest rigidbody 2d. Das funktioniert mit OnCollisionEnter nicht. Nur mit OnCollisionEnter2D und ich schätze mal du meintest boxcollider2d
  13. Ich habe noch nie NPCs im Spiel mit UNet gemacht. Was ich gemacht habe sind eher Projektile die keinem Spieler gehören. Die gehören also den Server.
  14. Ich hatte deine Problemschilderung schon bevor du editiert hast gelesen. Du hast da einen Denkfehler, wenn ich die jetzige Frage lese. Non Player Objects werden nicht mit Commands arbeiten, da sie vom Server gespawnt werden und der Server kontrolliert sie. Daher geht es nur SyncVars und ClientRpcs. Ich lasse die Objekte sowohl auf dem Client aber auch auf dem Server bewegen. Wenn jemand Beispiel "W" drückt, dann wird es auf allen Clients auch W = 1 gesetzt. Dann bewegen sich alle gleichzeitig. Natürlich gibt es Latenzen und daher wird auch nach bestimmten Abständen die Position, Rotation, Geschwindigkeit und sonst was wichtig ist gesendet. Sobald es eine Abweichung gibt wird es korrigiert. Ich benutze auch kein NetworkTransform, da ich damit nicht das geruckele wegbekommen habe. Ich habe da eigenen Script geschrieben, aber man kann sie auch kombinieren. Das hab ich schon mal gemacht, da hat es kaum geruckelt. Hä? Die werden direkt vom Server geändert. Health = 10 auf dem Server bedeutet auch, dass alle die Clients die Veränderung auch bekommen. Dafür braucht man kein Command, wenn man das auf dem Server macht.
  15. Hallo, vielleicht kennt ihr das. Mal eine Funktion etwas verspätet aufrufen oder eine Variable später verändern. Dazu benutzt man in Normalfall Invoke. Oder eventuell IEnumerator Funktionen. Mich hat es aber genervt, dass ich für jede Kleinigkeit etwas dafür erstellen muss. Bespiel Player stirbt, warte zwei Sekunde um das GameOvermenü zu zeigen. Daher hab ich eine kleine Klasse erstellt, wo ich für das hier schneller und flexibel machen lässt. DelayedCall.Exec(float delay, System.Action onFinished); Anwendung: Einfach den Script in beliebigen Ordner (in der Assetsordner natürlich) rein packen und die Funktion anwenden. Sonst wird nichts gebraucht. DelayedCall spawnt eigenständig, wenn man ihn braucht. Anwendungsbeispiele: DelayedCall.Exec(2f, () => { UIManager.ShowGameOver(); }); DelayedCall.Exec(2f, CallBackFunktion); void CallBackFunktion() { isCallbackDone = true; }