-
Posts
161 -
Joined
-
Last visited
-
Days Won
4
Lightstorm last won the day on February 22
Lightstorm had the most liked content!
Profile Information
-
Gender
Male
Recent Profile Visitors
3,236 profile views
Lightstorm's Achievements

Advanced Member (3/3)
17
Reputation
-
Hast du überprüft, ob der else Block mit gravity = 0f wirklich ausgeführt wird, wenn der Ball den Boden berührt?
-
Stehen auf Drehscheiben mit Character Controller
Lightstorm replied to Lightstorm's topic in Scripting
Ich konnte das Problem lösen. Es hatte damit zu tun, dass der Spieler Character ein Multiplayer-Spieler ist (Netcode for GameObjects) und es lag an dem Script, das für die Steuerung des Charakters zuständig ist. Wenn die Move() Methode ständig aufgerufen wird, auch wenn der Spieler sich nicht bewegt, wird die aktuelle Position des Spielers gehalten. Daher bewegte sich der Spieler Character auf der rotierenden Scheibe nicht mit der Scheibe, sondern behielt seine Position bei und drehte sich nur um seine eigene Achse. Ups ... 😅- 1 reply
-
- 1
-
-
Es ist möglich, einen Spieler mit einer Character-Controller-Komponente auf einer sich linear bewegenden Plattform zum Stehen zu bringen, indem man die Plattform zum Parent Objekt des Spielers macht. Aber was ist mit rotierenden Plattformen? Die Plattform zum übergeordneten Objekt zu machen führt nur dazu, dass der Spieler auf der Stelle rotiert, anstatt sich mit der rotierenden Plattform zu bewegen.
-
Spieler Geschwindigkeiten synchronisieren (Netcode)?
Lightstorm replied to Lightstorm's topic in Multiplayer und Networking
@MaZy Vielen Dank für deine Tipps. Mutliplayer Entwicklung ist echt eine Wissenschaft für sich. Mit der Network Transform Komponente von Netcode. Man fügt die Komponente einem GameObject hinzu und es synchronisiert automatisch mit den serverseitigen Bewegungen des GameObject. -
Ich probiere Netcode for GameObjects von Unity aus. Angenommen man möchte das Server authoritative Konzept verwenden und dabei dafür sorgen das alle Spieler die gleiche Geschwindigkeit im Spiel haben. Dann habe ich mit dem folgenden Code das Problem das Time.deltaTime die delta time des Servers und nicht des Clients ist. Man könnte die delta time des Client an den Server senden, aber es wäre schön wenn ich dem Client möglichst wenig vertrauen muss. Denn mit solchen Werten könnte man theoretisch cheaten (fliegen, schneller bewegen) und ich möchte vermeiden, dass der Server ständig berechnet, ob sich der Spieler innerhalb der erlaubten Grenzen bewegt. Außerdem könnte der Client durch mehr Aufrufe der RPC Methode auf dem Server schneller als andere Spieler werden. using Unity.Netcode; using UnityEngine; namespace HelloWorld { public class HelloWorldPlayer : NetworkBehaviour { [SerializeField] private CharacterController character; [ServerRpc] void MovementServerRpc(float horizontal, float vertical) { float moveSpeed = 3.07f; Vector3 move = new Vector3(horizontal, 0, vertical); character.Move(move * Time.deltaTime * moveSpeed); } void Update() { if (!IsOwner) return; float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); MovementServerRpc(horizontal, vertical); } } } Ich habe eine mögliche Lösung, von dem ich nicht wirklich weiß ob es so funktioniert wie ich mir das denke. Der Client schickt wie vorher über RPC die Aufforderung für eine Bewegung, der Server führt die Bewegung jedoch nicht sofort aus sondern speichert es in der nextMove Variable. Erst durch die zeitlich fixierten Aufrufe von FixedUpdate auf dem Server wird die Bewegung ausgeführt. Somit ist es egal wie oft Update auf den Clients aufgerufen wird, ausgeführt werden die Bewegungen nach dem Takt von FixedUpdate des Servers. So muss man auch keine delta time Werte von den Clients annehmen. Funktioniert das wie ich mir denke und welche anderen Lösungen gibt es noch? Vielleicht mache ich mir auch unnötig Gedanken darüber und irgendwas in Netcode macht das automatisch oder viel einfacher? Ich kenne mich mit Netcode noch kaum aus. using Unity.Netcode; using UnityEngine; namespace HelloWorld { public class HelloWorldPlayer : NetworkBehaviour { [SerializeField] private CharacterController character; private Vector3 nextMove; [ServerRpc] void MovementServerRpc(float horizontal, float vertical) { float moveSpeed = 3.07f; Vector3 move = new Vector3(horizontal, 0, vertical); nextMove = move; } void FixedUpdate() { if (IsServer && nextMove != Vector3.zero) { float speed = 3.0f; character.Move(nextMove * Time.fixedDeltaTime * speed); nextMove = Vector3.zero; } } void Update() { if (!IsOwner) return; float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); MovementServerRpc(horizontal, vertical); } } }
-
Bin ich der einzige den das auch so verwirrt? Also Unity benutzt Mono, richtig? Nicht .net Core oder .Net von Microsoft. Ist dass das originale Mono oder irgendeine modifiziertes Mono für Unity? Also ein Art "Unity Mono"? Und Mono bzw. Unity ist kompatible zu .Net 2.0 und .Net 4 Standard von Microsoft? Ist .Net 4 nicht eine höhere Version als Net. 2.0? Oder werden beide Stränge für sich alleine weiter entwickelt? Die neuen Features von C# 8 werden laut Microsoft Webseite von .Net 2.1 unterstützt. Was bei mir wieder für Verwirrung sorgt weil ich intuitiv meinen könnte das doch .Net 4 die aktuelle Version ist und Neuerungen darauf aufbauen und nicht auf älteren Versionen. Hinzu kommt das Visual Studio 2019 C# 8 Features unterstützt und sie erfolgreich validiert aber der Unity Editor spuckt nach dem compilieren Fehler aus. z.B. nimmt der VS 2019 eine Switch Expression (C# 8 Feature) an, mit annehmen meine ich dass nichts rot unterstrichen ist. Aber der Unity Editor gibt Fehler an der Stelle an. Laut Unity Forum ist eine Unterstützung für C# 8 für 2020 geplant. Macht wohl Sinn. Unity unterstützt den .Net 2.0 Standard. C# 8 Features setzen aber .Net 2.1 Standard voraus. Kann jemand diese Verwirrung bisschen auflösen?
-
Ich möchte für ein Spiel Dialoge entwickeln. Der Spieler soll auf eine bestimmte Nachricht mit mehreren Antwortmöglichkeiten reagieren können. Abhängig von der ausgewählten Antwort des Spielers, kommt dann eine darauf eingestellte neue Nachricht. Diese Dialoge werden zahlreich und jeder einzelne Dialog kann mehrere Verläufe haben. Wie ich das programmiere weiß ich bereits. Ich frage mich nur wie ich das am besten übersichtlich organisieren kann. Am liebsten wäre mir ein Tool, womit ich visuelle Elemente erstellen kann: Nachrichten Boxen, Antwort Boxen und diese Boxen kann ich beliebig miteinander verbinden, um den Pfad des Dialogs zu bestimmen. Nachdem der Dialog geschrieben und verzweigt ist, will ich dann das ganze z.B. als JSON oder in einem anderen Format exportieren, um es dann im Spiel zu importieren. Jede Editierung und Erstellung der Dialoge würde über das visuelle Tool ablaufen. Gibt es so etwas bereits oder etwas ähnliches?
-
An alle früheren Fans von Banjo Kazooie oder Donkey Kong 64: https://www.kickstar...rmer-rare-vival Eine Gruppe von Ex Rare Entwicklern entwickelt ein neues Jump & Run Spiel im Geiste von Banjo Kazooie. Das Projekt auf Kickstarter konnte innerhalb einer Stunde die Zielmarke erfüllen und steht momentan bei über 1,3 Mio. Pfund (1,8 Mio. Euro). Ein richtiger Hype Es basisert auf den Kult Spielen von Rare. Wenn ich Rare sage meine ich Rare, bevor es von Nintendo an Microsoft verkauft wurde und dann fast alle Mitarbeiter geflüchtet sind, weil sie Microsoft nicht mochten und Microsoft brachte neue Entwickler in Rare rein, die die vorherigen Spiele von Rare regelrecht hassten. Rare verkam zu einem Kinect Spiele Entwickler mit mäßigem bis keinem Erfolg. Mehr über Rare Geschichte: Was ich aber echt cool finde: Yooka Laylee wird mit Unity entwickelt! Ich bin gespannt, ob Yooka Laylee an den Erfolg von Banjo Kazooie anknüpfen kann oder ob die Leute in Erinnerung an die Rare Spiele ihrer Kindheit etwas übertreiben ^^
-
Ist es eigentlich mit Unity möglich Multiplayer Spiele im Browser laufen zu lassen? Ich meine als HTML5 Build mit WebGL, ohne den Webplayer. Theoretisch ist es sicher möglich, es gibt ja Websockets. Oder ist es möglich im Browser mit einer JavaScript Schnittelle mit dem Spiel zu interagieren? Dann könnte ich auch selber eine Websocket Verbindung programmieren und es über die Schnittelle mit dem Spiel verknüpfen.
-
Mich würde mal interessieren wie ihr eure Character Modells animiert. Motion Capture scheint ja nicht mehr so teuer zu sein. Ich habe verschiedene Systeme gesehen die ohne unzählige Kameras, riesen Studio und spezielle Kostüme auskommen. z.B. mit Kinect. Bekommt man aber damit wirklich saubere Ergebnisse? Bei Kinect würde ich ja trotzdem mal ein Bluescreen aufhängen und eine ordentliche Beleuchtung aufstellen, damit die Bilderkennung möglichst ungestört und flüssig läuft. Mit ein paar hundert Euro wäre man dabei. Oder erstellt ihr die Animationen lieber in einem Animation Editor? Wäre an ein paar Erfahrungsberichten interessiert.
-
Gefällt mir auch, sieht top aus.
-
Ich habe immer wieder von Mars Missionen gelesen, wo mit Sonden über dem Mars die Landoberfläche vermessen wurde, es wurde dabei eine Höhenkarte erstellt. Es gab soweit ich weiß mehrere solcher Missionen von der NASA und der ESA. Bei einer neueren Mission war sogar die Rede von einer Auflösung von 30cm. Die ESA und NASA stellen viele solcher Daten öffentlich zur Verfügung. Nun dachte ich mir, wäre es nicht cool, eine möglichst hochaufgelöste Heightmap vom Mars zum erstellen der Landschaft zu benutzen. Natürlich nur ein ganz kleinen Ausschnitt. Das wäre doch viel cooler als eine künstlerische Mars Landschaft. Man hätte vielleicht noch mehr das Gefühl auf dem Mars zu sein und echte Hügel und Schluchten zu erkunden, die es so wirklich auf dem Mars gibt. Denkt ihr das ist machbar? Oder gibt es sogar schon so was? Falls keine hohe Auflösung öffentlich verfügbar ist, wäre vielleicht auch ein Kompromiss möglich, zwischen realem Höhenfeld und künstlerischen Details der Landschaft.
-
Angenommen ich will einen Kühlschrank im Spiel, den der Spieler öffnen und schließen kann. Wie kann ich ein einzelnes Objekt teilweise animieren? Ich will also nur die Kühlschranktür animieren. In Blender kann ich mit der üblichen Animation in der Timeline nur das ganze Objekt animieren. Wie macht ihr das? Macht man da aus dem Kühlschrank einfach zwei Objekte?
-
Modelle in verschiedenen Auflösungen?
Lightstorm replied to Lightstorm's topic in Animation und Modellierung
Interessanten Beiträge. So wie ich das sehe, gibt es bei 3D-Coat und ZBrush sehr gute Auto-Retopology Funktionen. Wieso also noch alles von Hand neu erstellen?