Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation since 11/15/2019 in all areas

  1. 2 points
    Hallo ihr da draußen! Wir haben nun von "Azura - The Two Views of a World" unser erstes Gameplay veröffentlicht. Hier seht ihr den Trailer dazu: https://www.youtube.com/watch?v=TSv4Bn_dTzY Oder hier direkt zum 10 Minütigem Gameplay: https://www.youtube.com/watch?v=0p10A0_Z_2g Bedenkt bitte, dass dies unser erstes Gameplay ist und wir ganz am Anfang mit dem Spiel sind. Über Feedback würden wir uns natürlich sehr freuen! Wenns euch gefällt, könnt Ihr uns auch gerne unterstützen: https://bit.ly/AzuraK
  2. 1 point
    Bin mir nicht 100%ig sicher was du suchst, aber ich glaube du meinst etwas wie #region: https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-region
  3. 1 point
  4. 1 point
  5. 1 point
    Der eigentliche Fehler ist, du veränderst in der Update-Routine den Wert für "index" direkt nach dem Aufruf der Coroutine, was dazu führt, das nach dem ersten Zeichen (aus der gewünschten Zeile/Feldelement) die restliche Zeichenfolge aus der folgenden Zeile/Feldelement extrahiert wird. Beim Start der Coroutine wird diese bis zur Yield-Anweisung ausgeführt und dann die Anweisung "index ++" in der Update-Routine. Eine Möglichkeit wäre in der Update-Routine "indes ++;" vor dem Aufruf der Coroutine zu setzen. Dann müsstest du "index" allerdings mit -1 initialisieren. Oder du pufferst den Inhalt aus "Sentences[index]" in eine lokale Variable (innerhalb der Coroutine) und greifst in der Schleife darauf zu. Gruß Turtur
  6. 1 point
    Wahrscheinlich Mono selbst ist nichts anders um die Möglichkeit zu geben Plattform unabhängig zu programmieren, das mit C#. Ein Beispiel, ich habe ein Server programmiert, welches mit C# geschrieben wurde und welches sogar einen .exe beinhaltet. Das Programm läuft sowohl in Linux aber auch im Windows. Mittlerweile kann man sogar die Datei direkt starten. Früher musste ich noch mono zusätzlich ausführen. Früher war mono nicht für Systeme gedacht. Eigentlich nur windows. Kurz: Mono hilft die diese Programme die programmiert wurde auszuführen, zu compilen (ja auch in Linux kann man sie compilen und ausführen). Net Standard definiert, welche Libraries in der Programmierung benutzt werden können. Beispiel Netstandard 2 die framework 4.6.1 und die netstanard 1 wäre framework 4.5. Da sind auch aber andere Pakete dabei. Nicht nur Framework. Z.B. Core. Net Framework waren nicht beabsichtigt auf anderen Projekten zu funktionieren. Durch Xamarin und Mono wurde was neues erschaffen, wo man dann für anderen Plattformen erweitern konnte. Net Core benutzt KEIN mono. Wurde bewusst so vom Libraries aufgebaut, dass man auch für andere Plattformen verwenden kann. Ich habe jetzt nicht selbst benutzt, aber ich vermute mal, dass da sowas gibt wie if application is linux then usw. So wie ich auch verstanden habe hat Core auch keine libraries für Interfaces. Sprich kein Fenster wo man navigieren kann (Windows forms, WPF usw). Es ist der originale Mono zu mindest in der API Bereich. Zu modifizieren und zu ändern wäre nicht gut, dann müssten wir auch die Libraries dafür runterladen. Z.B. müsste ich irgendwas zusätzlich auf meinem Linux installieren, damit auch Unitys Version funktionieren soll. Aber der Standard Mono läuft. Unity ist ein Editor. Unity benutzt mono vom Microsoft. Natürlich! Man kann derzeit zwischen net 2.0 standard under net 4.x auswählen. Das sind eigentlich keine Versionen sondern Paketzustellungen. Früher konnte man auch Net 3.5 auswählen. Wichtig ist hier zu unterscheiden, dass wenn dahinter standard steht, dass es nicht das gleiche ist wie, ohne Standard. Standard heißt, dass da bis zu bestimmte libraries, versionen usw enthalten sind. beispiel Framework, Core, Mono usw. Die Schreibweise ist um das zu erkennen ist: Net 4.x bedeutet, dass höchst mögliche soll erlaubt werden beim Programmieren. z.B. .Net Framework 4.7.2 usw. Unity Editor natürlich muss das unterstützen. Sonst geht es nicht. Siehe oben Unity hat ist noch nicht bei der Framework Version. Deswegen geht es noch nicht. Ich glaube standard 2.1 wird das nicht werden. Wird eher immer noch net 4.x sein, da wie ich oben schrieb standard auch viele Sachen hat die wir aber nicht in Unity brauchen. Net 4.x sollte nur die Framework Version sein.
  7. 1 point
    Hier geht's weiter. Mal sehen, was noch kommt ¯\_(ツ)_/¯
  8. 1 point
    Wenn es irgendein simples Kraftfeld sein sollte, wie z.b jenäher zur Mitte, desto mehr Kraft ausgeübt werden sollte, dann Ich würde sagen, brauchst du einfach eine Formel, die je nach Kugel Position zusätzlich mehr oder weniger Force auf die Kugel ausübt. Du könntest auch Ebenen Array anlegen und abgleichen mit der Kugelposition.
  9. 1 point
    Moin, moin, falls Interesse besteht zum Abschluss meine Lösung des Puzzles: für jedes Puzzleteil habe ich ein Boolean deklariert (puzzle1ValueInRange, puzzle2...) und auf false gestellt. Mit dem Abgleich der Puzzleposition wird o.g. Variable auf true gesetzt. Zum Abschluss eine "if (alle 25 puzzles gleich true), voila , so klappt es. Zugegeben sieht der Code verdammt unprofessionell aus, aber es läuft erst einmal. Mit zunehmendem Wissen kann ich da sicher eine Menge verbessern. Aber wollen wir doch bescheiden sein. Jetzt geht es an das große Projekt "Save and Load" für das gesamte Spiel mit ca. 45 Szenen, da habe ich mir was vorgenommen ?! noch einen Schönen Sonntag für alle Gruß nordseekrabbe (Peter)
  10. 1 point
    Hi Leute, ich bin Turmburg und ich entwickle seit dieser Woche mein eigenes Spiel. Es soll ein kleines Horrorspiel werden. Ich mache jede Woche einen Vlog indem ich über den Fortschritt berichte. https://www.youtube.com/watch?v=maim3bOnPfY Für Anregungen bin ich immer offen! Falls ihr Lust habt schaut doch mal rein. Liebe Grüße Euer Turmburg
  11. 1 point
    Hallo, Als Unternehmen beschäftigen wir uns seit langem mit dem Thema AR, vor allem im Automobilbereich.Aus diesem Grund haben wir uns entschlossen, eine eigene AR-App auf den Markt zu bringen. AR-Stage ist eine serverbasierte AR-Plattform. Die Nutzer können die bereitgestellten Modelle lokal auf ihr Gerät herunterladen und AR genießen und ihre AR-Erfahrungen als Foto oder Video über das soziale Netzwerk mit Freunden teilen. Die einzelnen, teilweise interaktiven Modelle können an die reale Umgebung angepasst werden. AR-Stage verfügt über Einstellmöglichkeiten für Position, Drehung und Skalierung. Der Nutzer hat auch die Kontrolle über Beleuchtung, Schatten und Reflexionen, um die virtuelle Realität perfekt mit der realen Welt in Einklang zu bringen. Die Funktionen von AR-Stage könnt Ihr im folgenden Video sehen: Weitere Modelle für die AR-Stage werden folgen. Wir denken auch über mehr Interaktionsmöglichkeiten nach, um kleine AR-Spiele zu integrieren. In Zukunft wird AR-Stage auch ein professionellen Bereich haben. Auf diese Weise können Unternehmen ihre Produkte den Kunden schnell zur Verfügung stellen, ohne eigene Apps entwickeln zu müssen. Die Infrastruktur besteht dafür bereits. Weitere Informationen findet Ihr unter www.ar-stage.com. AR-Stage könnt Ihr kostenlos auf folgenden Stores runterladen: Google Play Store App Store Wir sind dankbar für Feedback und wünschen viel Spaß mit AR-Stage.
  12. 1 point
    Muss er nicht. Du kannst bei jedem Raycast eine LayerMask mitgeben, die bestimmt, welche Layer getroffen werden können. Darüber hinaus kannst du nach dem Raycast das getroffene Objekt filtern. Eine LayerMask kannst du z.B. so benutzen: [SerializeField] private LayerMask layers; private void Update() { RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, layers)) { // ... } } Dann kannst du im Inspektor ein Häckchen bei jedem gewünschten Layer setzen. Da musst du aber bedenken, dass der Ray blind durch alles durchgeht, was nicht der LayerMask entspricht. Du kannst also durch ein platziertes Gebäude hindurch den Boden treffen. Üblicherweise würde man ja aber wollen, dass man einfach nicht bauen kann, wenn die Maus über einem Gebäude ist. Du würdest also eher einfach Raycasten und dann schauen, was getroffen wurde: private void Update() { RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (CanBuildOn(hit.collider)) { // ... } } } private bool CanBuildOn(Collider c) { // Check if c is ground } CanBuildOn kann jetzt beliebig aussehen. Wieder ein bestimmter Layer wäre möglich, aber auch eine Komponente auf dem Boden-GameObject. Von Tags würde ich wie üblich abraten.
  13. 1 point
    Ich konnte das Problem jetzt lösen in dem ich Unity vollständig gelöscht und neu installiert habe. Keine Ahnung warum es überhaupt zu dem Problem gekommen ist.
  14. 1 point
    Was Namensfindung angeht kann ich euch Tipps geben. Dies bezieht aber auf Spiele, die tatsächlich Erfolg haben sollen z.B. durch Steam. Man muss sich die Fragen erst mal stellen. 1. Hat das Spiel was einzigartiges? Wenn ja, dann auf keinen Fall so leichte Namen nehmen, wo man bei der Suche zisch andere Spiele findet oder ihr nimmt explizit den Namen, was das Besondere hervorhebt. Beispiele: Titanfall - Weil titane aus dem Himmel fallen Dota (Defense of the Ancients) - Weil man die Ancients verteidigen muss.. ist es zerstört, verliert das Team. Payday - Weil es darum geht, dass man im Spiel immer mehr Geld anhäuft. Portal - Weil man fast nur Portale benutzen muss um voranzukommen (hier also auch das Gameplay). Squad - Weil das Spiel hauptsächlich ohen Kommunkation nicht geht. Squadsmitglieder und Leaeder müssen untereinander kommunizieren sonst ist es verloren (wie in Reallife halt^^). Space Engineers 2. Irgendein "dummen" oder "lustigen" Namen Es gibt Spiele (oder auch Filme usw), die bewusst etwas Dummes oder Lustiges als Name nehmen, weil sowas wie Ohrwurm ist und auf den Ohren bleibt. Beispiel: Garry's Mod (weil der Entwickler Garry ist und die Firma heißt Facepunch). Pavlov VR Mehr fallen mir da gerade nicht ein. Aber bei Apps gibt es jede Menge sowas. 3. Einen einzigartigen Namen geben, aber nichts zum Content aussagt oder sehr sehr gering etwas aussagt. Sowas ist finde ich immer wieder toll, wenn es Namen erfunden werden, die gar nicht existieren. Und das macht das Spiel dann sehr besonders. Jeder von uns kennt z.B. Half-Life. Beispiele: Half-Life Rust Counter-Strike Stellaris (Das Wort aber bezieht sich aber auf Stellar und ist ne Mischung aus Latein) - Ist ein Weltraumspiel Just Cause Gothic Fortnite - Wobei hier der Name von Fortnight kommt und um Four Nights (also 14 Tage und Nächte) geht. Max Payne - Kann man auch zu Punkt 1 zuordnen, aber da geht es echt um diesen Charakter selbst und seine Story. Über Content wird hier nichts gesagt. Die Besonderheiten des Spiels ist ja nicht Max Payne selbst sondern die schönen Bullettimes. ANNO XXX - Die ganzen Anno reihen ^^. 4. Namen die einfach gefunden werden sollen. Manchmal nimmt auch Namen bewusst, dass man bei der Suche finden soll. Sowas empfehle ich nicht, weil man da schon sehr oft Namensverletzung hat. Ein Beispiel von mir. The revenge of the Space Invaders. - Geschützter Name Space Invaders. Auch wenn im Spiel um Invader und Space geht, darf man es nicht so verwenden. Was aber geht ist: Invaders from Space: The Revenge. Dot Color Switch - Color Switch geschützt. Dot switch color oder Switch dot color würde gehen. Oder ganz anderen Namen wie Dot color swap. Persönliche Meinung. Ich mag es gar nicht, wenn der Titel eines Spiels so bestimmt wird, was auch Gameplay / Content aussagt. Beispiel: Back to earth: Ist nicht interessant genug. Warum? Ich weiß ok sie waren von der Erde weg und wollen zur Erde zurück. Das war es auch. Anders wäre es aber mit einen interessanten Namen davor (einfach so mal spontan, auch wenn es sich kacke anhört). Hitstrikes: Back to earth - Hier würde man sich fragen, was sind Hitstrikes. Wieso wird das so genannt. Gibt es noch andere Spielreihen davon?. Ein Schluss Wort Garry Newman sagte: Was wenn "Mario" das Spiel einfach nur "Coin Grab" hieße. Niemand würde an das Spiel sich später erinnern.
  15. 1 point
    … gelöst Es muss heißen: LocalizedTextKey loc = (LocalizedTextKey)4; key = loc.ToString();
  16. 1 point
    Microsoft hat für .NET core 3 einen neuen JSON serializer Entwickelt https://docs.microsoft.com/en-us/dotnet/api/system.text.json?view=netcore-3.0 und soll in ASP.NET core 3 newtonsoft JSON ersetzen, ist schneller und weniger GC behaftet. Wird mal Zeit dass .NET core in Unity einzughält, wäre auch um einiges schneller als Mono. .NET 5 soll am ende eh Mono, .NET CORE vereinen.
  17. 1 point
    Du musst das Rad aber auch nicht neu erfinden. Gibt eingebaute Xml- oder sonst auch Json-Bilbiotheken, da musst du nur deine Datenklassen mit Attributen bestücken ("das hier soll bitte mitgespeichert werden") und dann knallst du dein Objekt in einen Serializer und der spuckt dir korrektes Xml oder Json oder wasauchimmer aus. Das hier kann man z.B. benutzen, auch wenn ich gehört habe, dass es inzwischen einige neuere Pakete gibt. So oder so kannst du dir ja mal oben rechts auf der Seite ansehen, wie einfach das dann aussieht.
  18. 1 point
    Statt offensichtlich boolschen Werten für den Schwierigkeitsgrad würde ich eine Enumeration nutzen, damit Du immer nur einen Zustand haben kannst. //Beispiel public enum GameDifficulty { Easy = 0, Medium = 1, Hard = 2 } //... in deiner Komponente public GameDifficulty difficulty = GameDifficulty.Easy; Um die lifetime diesem anzupassen, könntest Du z.B. ein Dictionary nutzen. //in deiner Komponente da oben private Dictionary<GameDifficulty, float> lifetimeDictionary = new Dictionary<GameDifficulty, float>(); void Start() { lifetimeDictionary.Add(GameDifficulty.Easy, 0.1f); lifetimeDictionary.Add(GameDifficulty.Medium, 0.5f); lifetimeDictionary.Add(GameDifficulty.Hard, 1f); } void Update() { //da wo du deine lifetime nutzt... lifetime = lifetimeDictionary[difficulty]; //das ist die difficulty aus dem oberen Pseudocode } Nun kannst Du die "difficulty" ändern und es wird im Update immer die im Dictionary festgelegte lifetime genutzt.
  19. 1 point
    Wenn du etwas am Start aufrufen möchtest, dann benutzt du die Start/Awake Methoden. Wenn du ewas zur Laufzeit aufrufen möchtest, dann benutzt du Update Methode. https://docs.unity3d.com/ScriptReference/MonoBehaviour.Update.html Noch besser wäre es natürlich wenn du eigene Funktion schreibst und nur einmal diese aufrufst, mit einem Knopf zum Beispiel.
  20. 1 point
    Sehr cool, es hat Spaß gemacht den ganzen Clip anzusehen. Was mir richtig gut gefiel, waren die Abgase, die schön lang sichtbar in der Luft bleiben. Nur ein kleines Detail, aber richtig gut.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...