Jump to content
Unity Insider Forum

Crashdash

Members
  • Content count

    11
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Crashdash

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Crashdash

    Dont Clip

    Und ich bin's wieder. Habe jetzt versucht, meinen Character davon abzuhalten, steile wände hochzulaufen. Mal wieder kläglich. // X and Z first. We don't want the sloped ground to prevent // Player from falling enough to touch the ground. Vector3 displacement; displacement.x = velocity.x * Time.deltaTime; displacement.y = 0; displacement.z = -PlayerController.transform.position.z; characterController.Move(displacement); // Now Y displacement.y = velocity.y * Time.deltaTime; // Our steepest down slope is 45 degrees. Force Player to fall at least // that much so he stays in contact with the ground. if (-Mathf.Abs(displacement.x) < displacement.y && displacement.y < 0) { displacement.y = -Mathf.Abs(displacement.x) - 0.001f; } displacement.z = 0; displacement.x = 0; characterController.Move(displacement);
  2. Hi, Grundsätzlich ist es schon möglich, dem Client die Synchronisation zu erlauben. Du solltest dir aber immer überlegen, ob das der richtige Weg. Im Normalfall lasse ich den Client "schreiben", was er tun möchte, aber der Server verarbeitet diesen Input und führt es dann aus. Es bietet einfach deutlich mehr Sicherheit (bzgl. Hackern, Cheatern, aber auch Integrität). Ich mache das Mal an einem anderen Beispiel fest, Spieler A schießt auf Spieler B. Auf dem Client des Spieler A wird die Nachricht generiert und an den Server gesendet, dass er Schießt. Der Server "erschafft" dann die Kugel und Synchronisiert sie auf beiden Clients. Spieler A hat also keinen Einfluss darauf, wie die Kugel sich bewegt, sondern nur wann diese abgefeuert werden soll. Für dich bedeutet das: drückt Spieler A den Button, sendet er eine Nachricht an den Server, dass er Sauerstoff "entnehmen möchte", statt die Variable selbst zu ändern. Such mal die Tutorials die sich mit NetworkClient auseinander setzen. Ich sitze gerade am Handy, da fallen mir Beispielcodes etwas schwer 😂
  3. Crashdash

    Clustering 5/11

    Okay, es liegt wohl tatsächlich an den Höhen. Eine kleine Frage hätte ich heute noch. Ich hab ein bisschen Schwierigkeiten damit, mir die Größenverhältnisse des Terrains vorzustellen. Angenommen ich würde die Fortnite-Karte 1 zu 1 nach bauen. Wie groß ist die ca.? Vielleicht krieg ich so mal einen Eindruck.
  4. Crashdash

    Clustering 5/11

    Ich meinte eigentlich das Asset, das von Unity zur Verfügung gestellt wird. Ich probiere mal eben deinen Vorschlag.
  5. Crashdash

    Clustering 5/11

    Habe das Terrain auch schon auf 500x500 zurückgesetzt. Hilft alles nichts. Ob es am Post Processing liegt?
  6. Crashdash

    Clustering 5/11

    Okaaaaay. Habe jetzt also versucht es auszuschließen... Was ich letztendlich auch geschafft habe. Es war/ist das Terrain selbst. Wenn ich alles entferne, und nur das Terrain-Object alleine besteht, besteht auch immer das Problem. Ich habe jede Textur entfernt und weiß mir jetzt einfach nicht mehr zu helfen. Ich halte es langsam für einen Bug..
  7. Crashdash

    Clustering 5/11

    Oh mein Gott, ich hab es mir fast gedacht. Es sind aber so viele. Na dann wird das eine laaaange Nacht. Danke dir!
  8. Crashdash

    Clustering 5/11

    Danke für deine zügige Antwort! Und wie bekomm ich raus welches Mesh mir probleme macht?
  9. Crashdash

    Clustering 5/11

    Hi, Ich habe nochmal ein kleines bis ziemlich großes Problem(chen). Habe bereits mit meinen Freunden zusammen mein Spiel problemlos ausprobiert. Jetzt habe ich ein bisschen was an der Grafik getan, mit Shadern und Light gearbeitet. Gestern war noch alles super. Als ich dann heute das Spiel gestartet habe, hat er sich beim "Bake-Versuch" bei "5/11, 64 Jobs" Clustering aufgehängt. Hab es mittlerweile 1 1/2 Stunden laufen, ohne jeden Erfolg. Ich find im Internet nur, dass man das generieren ausstellen soll, was aber nicht das Problem löst, da die es dann ja trotzdem nicht berechnet wird. Jemand Erfahrung damit oder kennt sogar die Lösung meines Problems? Btw. Ich habe schon einmal die kompletten Objekte entfernt, was leider auch nichts geändert hat. T.T Danke euch!
  10. Crashdash

    Enemy-Movement

    Hi, danke dir für die Antwort! Hab das Problem allerdings schon gelöst bekommen. Hab den von dir beschriebenen Fehler dann doch selbst erkannt.
  11. Crashdash

    Enemy-Movement

    Hallo ihr, ich bin Informatikstudent und habe mir Unity zugelegt, um "spielerisch" mit C# warm zu werden. Ich nutze Photon für die Netzwerkkommunikation. Zu meiner Frage: Ich habe ein PlayerPrefab, dass beim Serverstart erstellt wird, Und einen netten Drachen(Gegner) der 5 Sekunden nach dem Serverstart spawned. Ich versuche, dass der Drache den Tag des Players findet, seine Position lokalisiert und sich zu ihm bewegt, so bald der Abstand der beiden kleiner als 20 ist. Im Lokalen Spiel, findet er ihn sofort mit meinem Script und bewegt sich auf ihn zu, greift ihn dann an, etc. Im Multiplayer schaff ich es einfach nicht Lange Rede, kurzer Sinn: Wie findet der Drache meine verbundenen Spieler? Script des Drachen: void Awake() { //Sende RPC um Clients nach playertag zu fragen photonView.RPC("playertag", PhotonTargets.All, gameObject.tag); Debug.Log("Found Player"); //Distance zwischen Spieler und Drache float dist = Vector3.Distance(Enemy1.position, player.position); if (GameObject.FindGameObjectsWithTag("PlayerObject").Length > 0) //Fehlercode: NullReferenceException: Object reference not set to an instance of an object EnemyMovement.Awake () (at Assets/Scripts 1/EnemyScripts/EnemyMovement.cs:35) { //Wenn Gegner und Drache noch leben... if (enemyHealth.currenthealth > 0 && playerHealth.currHealth > 0) { if (dist < 20 || Dmg == true) { // setze das Ziel des Nav.Mesh auf Player nav.enabled = true; nav.SetDestination(player.position); transform.LookAt(player.position); if (nav.remainingDistance < 11) { Running2.SetBool("Running", false); } else { Running2.SetBool("Running", true); } } else { // ... disable the nav mesh agent. nav.enabled = false; Running2.SetBool("Running", false); Playerscript: public class Player : Photon.MonoBehaviour { [PunRPC] void playertag(string text) { this.tag = text; } }
×