Jump to content
Unity Insider Forum

Helishcoffe

Members
  • Content count

    943
  • Joined

  • Last visited

  • Days Won

    22

Helishcoffe last won the day on July 28

Helishcoffe had the most liked content!

Community Reputation

141 Excellent

1 Follower

About Helishcoffe

  • Rank
    Advanced Member
  • Birthday 05/16/1998

Profile Information

  • Gender
    Male
  • Location
    Ruhrgebiet :)

Recent Profile Visitors

7,030 profile views
  1. Helishcoffe

    [UNET] Network and XML

    Das sind 2 völlig unterschiedliche Dinge. Das Attribut [Server] über einer Methode sagt nur, dass diese Methode nur auf einem Server aufgerufen werden kann, falls diese doch auf einem Client aufgerufen wird gibts eine Fehlermeldung. Das hat Praktisch kaum einen Nutzen, dient jedoch zur schnelleren Fehlerfindung und einem saubereren Codestil wenn man das Konsequent durchzieht. Allerdings hat das nichts mit einem Command zu tun.
  2. Man müsste villeicht auch noch in Betracht ziehen wieviel Kommunikation du mit deinem Server haben willst. Wenn es wirklich um etwas geht und man verhindern will, dass man das Spiel cheatet, sollte man vielleicht drüber nachdenken ob es eine so gute Idee ist, den Highscore vom Client zu berechnen und dann an den Server zu senden. Der Vorschlag von @Sascha schützt dich vielleicht einen Highscore nicht zu manipulieren aber wie auch schon gesagt wurde, ist die wahrscheinlichkeit nicht gering, dass jemand trotzdem cheatet. Da bringt es dir auch nichts wenn man davor geschützt ist, dass ein Highscore beim Senden manipuliert wird, aber nicht davor, dass man den Highscore auch vorher schon manipuliert hat Man muss sich halt immer entscheiden zwischen Overhead bei den Datenpaketen die hin und her geschickt werden oder zwischen schneller Reaktion des Spiels. Guck dir Agar.io an. Dort wird fast gar nichts vom Spiel selbst berechnet sondern nur die Mauseingaben und Tastertureingaben an den Server gesendet und dort wird dann der gesamte Spielverlauf berechnet. Somit muss gar kein Highscore oder sonstwas vom Spieler aus gesendet werden sondern der Server berechnet den Highscore einfach selbst, da er das Spiel selbst in der Hand hat. Nachteil: Hohe Latenzen und ständige Internetverbindung. Vorteil: Enorme Cheatsicherheit. Ist die Frage was einem wichtiger ist
  3. Was bedeutet für dich "Variable zu einem anderen Spieler schicken" ? Wenn du UNET benutzt, kann der Spieler der Host ist mit SyncVar eine Variable setzen, welche dann für alle anderen Spieler synchronisiert wird. Wenn es allerdings nur um die Kommunikation 2er Clients oder so geht, dann benutze am Besten einen Command und einen TargetRPC. Du hast also eine Command Methode die von dem Spielr aufgerufen wird der die Daten schicken will. Der Host schickt diese dann an den ZielClient über eine TargetRPC Methode. Der genauere Anwendungsfall wäre ganz hilfreich zu wissen bzw. ob du überhaupt mit UNET arbeitest.
  4. Helishcoffe

    [UNET] Network and XML

    Genau so ist es richtig. Einfach einen Command mit 2 Strings und fertig. Was du dann auf dem Server damit machst ist ja völlig egal davon kriegen die CLients ja nichts mit.
  5. Helishcoffe

    Trabant Driver: The Arcade Game

    Sehr sehr schickes Spiel. Da steckt bestimmt eine Menge Herzblut drin. Ich hoffe man sieht in Zukunft noch mehr
  6. Helishcoffe

    Button wieder aktivieren

    nunja du hast ja schon deine Variable die du mit SetEnergie switcht. Die Musst du jetzt nur noch an der Richtigen Stelle Aufrufen. In Start() kannst du dem Button ein EventHandler hinzufügen: BEnergie.onClick.AddListener(delegate { // Code hier drin wird beim Klicken ausgeführt. }); Dort musst du jetzt nur noch SetEnergie() aufrufen. Alternativ kannst du natürlich auch die Funktion SetEnergie im Inspector des Buttons zuweisen bei onClick. Die Farbe des Buttons kannst du nun mit EButton.GetComponent<Image>().color = Color.Red // Oder irgendeine Andere Farbe Verändern (Am Besten auch in SetEnergie)
  7. Helishcoffe

    Förderband simulieren

    Es kommt drauf an wie realistisch du dein Förderband umsetzen willst. Natürlich kann man den Ansatz von @Kojote verwenden und deine Objekte werden Fix auf dem Förderband bewegt. Wenn du es allerdings etwas dynamischer haben möchtest, dann verwende lieber Rigidbodys zur Bewegung deiner Objekte auf dem Förderband. Mit velocity oder AddForce kann man eine Kraft auf die Objekte einwirken lassen die auf dem Förderband liegen. Mit Vector3.forward hast du auch nur die Weltrichtung und nicht die relative Richtung von deinem Fließband. Diese erhälst du wenn du transform.forward benutzt.
  8. Helishcoffe

    Button wieder aktivieren

    Kleiner Tipp: Schreibe deinen Code zukünftig einfach in das Code-Tag dann sieht es lesbarer aus: Mein Code Also ersteinmal sollte die Klammer nach "public Button BEnergie;" weg. Denn du schließt sonst direkt deine Klasse wieder obwohl danach ja noch Methoden kommen. Das kann denke ich mal nicht gewollt sein und es müsste dir auch einen Fehler werfen. Um Interargierbare UI Elemente wie einen Button zu deaktivieren kannst und die interactable Eigenschaft des Buttons auf false setzen und wenn du wieder aktivieren willst auf True. Nur kannst du den Button wenn er deaktiviert ist ja nicht wieder klicken um ihn zu aktivieren. Deswegen meine Frage: Was genau hast du überhaupt vor? Bzw. was meinst du dann mit Aktivieren oder Deaktivieren?
  9. Helishcoffe

    Verbindung Server zum Handy

    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
  10. Helishcoffe

    Variablen zusammenfassen

    Was soll denn überhaupt für ausgabewerte rauskommen und welche Kommen raus? Wo speicherst du deine PlayerPrefs denn eigentlich? Weil in deinem Script liest du ja nur aus. Es wird irgendwie auch nicht ganz deutlich was du mit Variablen zusammenfassen meinst. Oder ich bin grad einfach zu blöd
  11. Helishcoffe

    Idee gesucht

    Wenn ich das Richtig verstehe soll deine Platform durch eine Art Schienennetz fahren und nutr losfahren wenn der Spieler aus einer Bestimmten richtung die Platform betritt? Also, dass der Spieler nur aus einer Richtung kommen darf, kannst du recht einfach machen. In dem Moment wo der Spieler die Platform betritt, musst du die relative Richtung von der Platform zum Spieler im Bezugspunkt der Platform berechnen. Wenn deine Platform nach hinten in richtung -Z geht, so muss die Relative Richtung auch -Z. Kann grad schlecht sagen was genau du willst.
  12. Ja ein wenig mehr infos wären ganz gut. Also welche Scripts benutzt du bisher bzw. hast du geschrieben? Dann könnte man gucken wie man die Anpassen kann. Was meinst du mit "nicht nur auf localhost sondern immer?" Irgendwo muss das Spiel ja gehostet werden und da du ja (ich gehe jetzt mal davon aus) beide Spieler startest, muss der eine Ja wissen wohin er sich verbinden soll (und wenn beide Spieler auf dem gleichen Rechner laufen ist das nunmal localhost/127.0.0.1). An sich ist das Verschicken von 2 Nachrichten nicht sonderlich aufwenidig. Schaue dir dazu mal die Commands und RPC's an.
  13. Helishcoffe

    Methodensammlung

    Ja gut, wusste nicht dass es sowas schon gibt
  14. Helishcoffe

    Methodensammlung

    Wenn man ne Box schnell zeichnen möchte public static void DrawBox(Vector3 position, Vector3 halfExtends, Quaternion rotation, Color color) { Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, halfExtends.y, halfExtends.z), position + rotation * new Vector3(-halfExtends.x, halfExtends.y, halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, -halfExtends.y, halfExtends.z), position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, halfExtends.y, -halfExtends.z), position + rotation * new Vector3(-halfExtends.x, halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, -halfExtends.y, -halfExtends.z), position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, -halfExtends.y, halfExtends.z), position + rotation * new Vector3(halfExtends.x, halfExtends.y, halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, halfExtends.z), position + rotation * new Vector3(-halfExtends.x, halfExtends.y, halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, -halfExtends.y, -halfExtends.z), position + rotation * new Vector3(halfExtends.x, halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, -halfExtends.z), position + rotation * new Vector3(-halfExtends.x, halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, halfExtends.y, halfExtends.z), position + rotation * new Vector3(halfExtends.x, halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(-halfExtends.x, halfExtends.y, halfExtends.z), position + rotation * new Vector3(-halfExtends.x, halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(halfExtends.x, -halfExtends.y, halfExtends.z), position + rotation * new Vector3(halfExtends.x, -halfExtends.y, -halfExtends.z), color); Debug.DrawLine(position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, halfExtends.z), position + rotation * new Vector3(-halfExtends.x, -halfExtends.y, -halfExtends.z), color); }
  15. Helishcoffe

    Apps mit Unity erstellen

    Ouh ich glaube wenn man das in einem Java-Forum posten würde, gäbe das Zündstoff für eine hitzige Diskussion
×