Jump to content
Unity Insider Forum

Rangliste

Beliebte Inhalte

Showing content with the highest reputation since 18.04.2023 in allen Bereichen

  1. Hallo, Ich wünsche euch allen ein Rundumsorglospaket .🔔🔔🔔🔔 ! Frohe Weihnachten! Gruß Jog
    3 points
  2. So, hier für euch einmal das Update von gestern in aller Kürze zusammen gefasst: Man kann sich jetzt aussuchen, ob man 2.5% RevShare bezahlt oder doch wie ursprünglich geplant pro Installation. Unity misst nicht mehr selber die Installationen. Will man nach Installationen bezahlen, übermittelt man die Zahlen selber. Es wird erneut in die TOS geschrieben, dass immer die TOS einer Engine-Version gültig bleibt. TOS-Updates gelten also nur für dich, wenn du auch ein Engine-Update machst. Wer auf 2022 LTS oder früher bleibt, ist von den Änderungen nicht betroffen. Ein paar kleinere Anpassungen, wie dass die Grenze, ab der man Pro kaufen muss, angehoben wird. Und der Unity Spash Screen wird jetzt auch für Personal-User optional. Ich finde das Modell für meinen Teil ganz gut. Also insofern, dass es, wäre es initial so angekündigt worden, insgesamt gut angenommen worden wäre. Der Vertrauensbruch ist damit aber leider nicht wirklich wieder gut gemacht. Punkt 3. ist enorm wichtig, aber eigentlich ist die ursprünglich geplante rückwirkende Änderung sowieso rechtlich mehr als fragwürdig gewesen. Und genau so einen Absatz hatten sie eben schon in der TOS, die sie klangheimlich versucht haben verschwinden zu lassen. Unity bleibt also ein Risikofaktor. Das letzte Mal haben sie sowas in der Art 2019 schonmal versucht, wenn ich mich recht erinnere. Es ist also durchaus möglich, dass sie etwas ähnlich blödes in vier Jahren nochmal durchziehen wollen. Und der Schaden ist halt auch schon da. Eine halbe Stunde vor dem Announcement der Änderungen hatte ich das hier im Postfach: Ob man also bei Unity bleiben will, muss jeder für sich selbst entscheiden. Ist halt immer noch eine unfassbar gute Engine. Mit unfassbar blöden Entscheidungen an der Spitze.
    3 points
  3. Moin an alle! Ich bin seit gestern in diesem Forum aktiv und moechte mein erstes (fast fertiges) Projekt in Unity vorstellen. Link zu einem youtube Video. Den Wuerfel habe ich mit Blender erstellt.
    3 points
  4. Hallo, ich habe zu Ostern ein kleines Hobbyspieleprojekt erstellt und möchte es hier mal vorstellen. Hier der Downloadlink: Lillys Adventure Tauche ein in die magische Welt von Lilly und hilf ihr, die entführten Osterhasen zu retten! In einer Nacht voller Sturm und Gewitter schlich sich der furchterregende Waldgeist in das Osterdorf und entführte alle Osterhasen. Jetzt liegt es an dir, Lilly, mit ihren unterschiedlichen Fähigkeiten, die Ostereier zu sammeln und die entführten Hasen aus den gefährlichen Fallen zu befreien. Erlebe spannende Abenteuer in einer wunderschön gestalteten Spielwelt, die in verschiedene Abschnitte unterteilt ist. Jeder Abschnitt erfordert unterschiedliche Fähigkeiten, die du durch das Sammeln von Ostereiern und den Tausch im Osterdorf freischalten kannst. Klettere, springe, fliege und stampfe, um die kostbaren Ostereier zu finden und die entführten Osterhasen zu retten. Lass dich von der faszinierenden Geschichte und den herausfordernden Aufgaben mitreißen und werde zum Helden des Osterdorfes. Bist du bereit, das Chaos des Waldgeistes zu besiegen und den Frühling im Osterdorf wiederherzustellen? Finde es heraus und spiele jetzt!
    2 points
  5. Die Alpha-Version vom ersten Boss ist fertig. Die Grafik für den Boss habe ich selber erstellt, aus bestehenden Grafiken aus dem Internet. Der Boss wird noch mehr Hitpoints bekommen als im Video:
    2 points
  6. Die Lösung ist trivial_ SoundAnButtonText.GetComponent<TextMeshPro>().color = gameController.colorViolet; Es hat nur das Pro gefehlt.
    2 points
  7. hallo Leute Ich konnte das Problem inzwischen selber lösen. Der Fehler war in der Hilfsfunktion, welche gleiche Parzellennamen finden sollte. Jetzt siehts so aus... Gruss, peachplayer
    2 points
  8. Okay, dann erkläre ich es dir halt. Meine Güte. Du hast nach einem Bereich gefragt, in dem man Teammitglieder finden kann. Eine Suche von weniger als 15 Sekunden auf der Forenhauptseite hätte dir die Antwort gegeben. Stattdessen machst du einen Thread auf, damit irgendjemand anders das für dich tun kann. Als Begründung dafür führst du an, dass der Bereich irgendwie nicht so aktiv aussähe. Ich bin nicht so ganz sicher, was du mit dieser Begründung aussagen willst - es sei denn, du bist auf der Suche nach einer Art VIP-Bereich, wo du dein Gesuch einem geheimen, aktiveren Zirkel vorstellen kannst. Daraus schließe ich, dass du entweder noch nicht ganz wach warst oder mich irgendwie verarschen willst. Und wie ich bereits sagte, wäre es ein leichtes gewesen, anhand der Forenregeln abzuleiten, warum in den Threads wenig Antworten zu finden sind. Also schließe ich des weiteren aus deiner fragwürdigen Begründung, dass du entweder dir die Forenregeln nicht durchgelesen hast (was immer einen tollen Eindruck macht) oder 1 und 1 nicht zusammenzählen kannst. Ob du es glaubst oder nicht: Ich bin kein Service-Mitarbeiter. Keine Ahnung, woher du den Eindruck gewinnst, als Mod müsse man ständig immer brav lächeln. Als Mod hat man genau eine Aufgabe: Dass Forenregeln eingehalten werden und Leute einander ein Mindestmaß an Respekt zeigen. Klar waren meine Antworten sarkastisch, aber das erlaube ich mir nun einmal bei Leuten mit Anfragen, bei denen ich mich fragen muss, ob da ein Scherzkeks oder ein drittes Feierabendbier spricht. Aber sind wir doch mal für einen Moment ehrlich: Wir wissen beide, wovon du dich wirklich angegriffen fühlst. Web3 ist schließlich die Zukunft, und jeder, der was anderes behauptet, ist ein dummer Hater. Deswegen bin ich ja auch einfach nur zu blöd, dein Genie zu verstehen, und es würde viel zu lange dauern, mir die Vorteile einer Technologie zu erklären, die nach all der Zeit nun wirklich jeder halbwegs Interessierte mit grundlegenden Lesekenntnissen verstanden hat. Die Möglichkeit, dass du einem Trend aufgesessen bist, der sich heutzutage nur noch über Wasser hält durch das restliche bisschen Unwissen von Leuten, die wirklich keine Ahnung von der Technologie haben, kann ja gar nicht sein. Ich sehe nirgendwo, dass du gebannt oder auch nur verwarnt wurdest. Ich mache mich nur gerne über Crypto-Bros lustig. Vor allem jene, die bis heute nicht verstanden haben, welche realen Vorteile Web3 in Spielen bringt: Gar keine.
    2 points
  9. Viele von euch werden es wohl mitbekommen haben. Unity ändert seine Preispolitik. Ab 2024 will Unity etwas vom Kuchen ab haben. Momentan ist es so: Man nutzt die Free Version von Unity. Bis zu einem Firmenverdienst von 100.000$ ist alles ok. Verdient man mehr, muss man eine Kaufversion erwerben. Man nutzt die Plus Version (kostet ~ 300€). Hier hat man bis zu 200.000$ keine Probleme. Verdient man mehr, muss man sich die Pro kaufen. Man nutzt gleich die Pro Version. Ab 2024 wird es so sein: Die Einnahmen sind jetzt nicht mehr auf die Firma bezogen, sondern auf das Spiel selbst. Egal welche Version man nutzt, die Einnahmen, die man mit einen Spiel generiert werden jetzt wichtig! Bei der Free Version gibt es eine Einnahmengrenze von 200.000$ (in den letzten 12 Monaten pro Spiel). Bei der Pro sind ein 1.000.000$ (in den letzten 12 Monaten pro Spiel). Zusätzlich zu den Einnahmen werden auch die Verkäufe des Spiels gezählt. Diese werden erst ab 2024 gezähl. Alles was davor Verkauft worden ist, soll nicht berücksichtigt werden. Es gibt ab dann keine Plus Version mehr. Nur noch die Free Version und die Pro bzw. Enterprise Version. Bei beiden Versionen gibt es einen Schwellenwert der verkauften Spiele, ab dem es überhaupt erst dazu kommen kann, dass Unity an dir mitverdienen wird. Die Free Version hat einen Schwellenwert von 200.000 Die Pro einen Wert von 1.000.000 Einheiten. Gezählt wird, wie gesagt ab dem Januar 2024 ab dann für immer. Was bedeutet das jetzt? Wenn ihr ein Spiel erstellt habt und es verkauft, dann wird jeder Verkauf gezählt. Sobald dieses Spiel irgendwann den Schwellenwert überschritten hat, ist eine Bedingung für den mitverdienst erfüllt. Ab jetzt wird geschaut ob ihr in den letzten 12 Monaten mehr als die Obergrenze verdient habt. Wenn nicht, müsst ihr auch nichts abgeben. Wenn es aber so ist, wird geschaut, wie viele Spiele ihr den letzten Monat verkauft habt. Und für jedes Spiel will Unity dann etwas von euch haben. Habt ihr die Free Version, dann müsst ihr (pro verkauftem Spiel im letzten Monat) 20 Cent bezahlen. Habt ihr die Pro Version, dann ist der Preis gestaffelt. Es fängt mit 15 Cent für die ersten 100.000 Spiele an und verringert sich dann auf 7 Cent und dann noch weiter. Die Enterprise hat noch billigere Tarife. Siehe Tabelle. Hier ein kleines Beispiel: Ihr habt die Free Version. Euer Spiel wurde insgesamt 210.000 mal verkauft. - Bedingung 1 ist erfüllt. Ihr habt damit in den letzten 12 Monaten 350.000$ eingenommen. - Bedingung 2 ist erfüllt. Im letzten Monat habt ihr 10.000 Spiele verkauft. Dann müsst ihr 10.000 * 0.2 = 2.000$ an Unity bezahlen. Im nächsten Monat wird wieder geschaut, wieviel ihr in den letzten 12 Monaten eingenommen habt. Seid ihr dann wieder über der Grenze, dann wird wieder geschaut, wieviele Einheiten verkauft wurden und von diesen Einheiten bekommt dann Unity wieder seinen Anteil. Fallt ihr aber aus der Obergrenze raus, weil die starken Verkaufsmonate jetzt länger als ein Jahr her sind, braucht ihr für dieses Spiel auch nichts mehr bezahlen. Ist das jetzt gut oder schlecht? Zum einen ist es gut, weil man jetzt pro Spiel berechnet wird und die Grenze nach oben geschoben wurde. Die meisten von uns werden niemals 200.000$ mit einem Spiel in einem Jahr einnehmen. Es ist aber auch schlecht, denn wenn man wirklich mal einen Glückswurf haben sollte und ein Spiel richtig abgeht, denn dann kann es richtig teuer werden. Den es ist ja so, dass Spiele von kleinen Studios für viel weniger Geld verkauft werden als die Spiele von den großen Studios. Es macht einen Unterschied, ob man die Einkommensgrenze mit ganz vielen billigen Verkäufen überschreitet, oder mit wenigen teuren. Wenn das Spiel 10$ kostete, dann sind 20 Cent pro Verkauf 2%. Bei 60$ sind es aber nur 0,3% ! Um die Einnahmengrenze zu sprengen muss man aber bei 10 Euro 6 Mal soviel EInheiten verkaufen. Und dies würde sich dann auch in der Kalkulation niederschlagen. Es ist also ein unfaires Prinzip, weil es nicht um den Preis einer Einheit geht, sondern nur um Summen. Was mich persönlich ärgert ist der Wegfall der Plus Version. Ich habe die eigentlich nur, weil ich das Unity Logo nicht im Intro haben wollte. 300€ waren ok. Aber knappe 2000€ für ne Pro zahle ich nicht. Jedenfalls nicht, wenn ich nicht an die Einnahmengrenze ran komme. Wenn ich da ran käme, dann würde ich die Pro kaufen, denn dann hätte ich die Grenze auf ne Million angehoben und da muss man erst mal hin kommen. Es gibt noch viele Unklarheiten, denn Unity sagt nicht, wie sie an die Zahlen der Einheiten kommt. Es ist klar, dass jedes Spiel an Unity was sendet. Aber was das alles beinhaltet weiß nur Unity selbst. Demoversionen sollen nicht mit einberechnet werden. Mehrfach installationen sollen auch nicht mit einberechnet werden. Wir werden sehen, was die Zukunft bringt.
    2 points
  10. Für alle, die sich immer noch wundern, warum der Backlash so groß ist: Ein Spiel zu entwickeln, vor allem eines, das Geld verdienen soll, ist oft eine Angelegenheit von mehreren Jahren. Manchmal eines, manchmal mehrere, manchmal sogar zweistellig. Wenn man ein Spieleprojekt anfängt, und sogar noch mehr wenn man ein Studio aufbaut, das man dann nach und nach mit Menschen bestückt, die Spiele entwickeln können, dann ist die Wahl der Engine ein extremes Committment. Man geht, auch wenn man zuerst vielleicht nix bezahlt, eine Partnerschaft mit der Engine ein. Sollte Unity morgen nicht mehr existieren, würden dadurch in sehr vielen Studios überall auf der Welt jahrelange Arbeit und unfassbare Mengen an Geld über Nacht einfach weg sein. Deshalb ist die Wahl einer Engine für ein Spiel oder ein Studio etwas, das extrem auf Vertrauen basiert. Egal, wie gut die Engine ist - wenn die Firma dahinter nicht vertrauenswürdig ist, erhöht sich dadurch das Risiko, dass dein Projekt in die Brüche geht. Du setzt deine Existenz und/oder die deines Teams aufs Spiel. Was Unity diese Woche gemacht hat, ist ein unfassbarer Vertrauensbruch. Sie haben eine dumme Änderung angekündigt. Eine gute Metrik für die Bezahlung einer Middleware wie Unity ist immer "wenn du gewinnst, gewinnen wir mit dir". Auch wenn es sich um einen Randfall handelt (laut Unity selbst aber immerhin stolze 10% aller Entwickler!), dass man auf viele Installationen und niedrige ARPU (average revenue per user) setzt, hat das Unity-Management hier bewiesen, dass sie diesen Grundgedanken nicht verfolgen. Wer diese valide Schiene bisher gefahren ist, kann mit Unity schlicht keinen Gewinn mehr erzielen. Diese Entscheidung ist ein Beweis dafür, dass Unity die Unterstützung aller Entwickler nicht als Priorität versteht. Das Vertrauen, dass Unity Einsicht zeigen sollte, sollten sie irgendwann mal dir mit ihrer Idiotie Schaden zufügen, ist damit weg. die Änderung extrem schwach kommuniziert. Die Veränderungen warn sehr unklar und auch jetzt sind noch entscheidende Fragen offen. Die technische Umsetzung unterliegt der Geheimhaltung. Und wie zum Geier eine vermutlich nach Hause telefonierende Engine überhaupt unter europäischem Datenschutz funktionieren soll, versteht auch keiner. intern von vielen Mitarbeitern schon vor der Veröffentlichung große Kritik geerntet. Es heißt, dass vieles von dem, was Leute jetzt entrüstet schreiben, bereits vor Dienstag intern angemerkt wurde. Es hieß wohl "Antworten kommen". Stattdessen wurde der Plan einfach umgesetzt. Viele Unity-Entwickler kündigen jetzt. bereits auf Twitter angekündigt, dass sie jedes Jahr die Preise re-evaluieren und anpassen wollen. Das Committment, unvorhersehbar und unzuverlässig zu sein, ist stark. angekündigt, dass diese Änderung auch Leute betrifft, die sich schon von Jahren für Unity entschieden haben. eine ältere Version der TOS (terms of service) auf Github klangheimlich gelöscht, die besagt, dass man eine neuere TOS-Version ablehnen kann, wenn man auf der entsprechenden Engine-Version bleibt. Sie halten sich also nach Möglichkeit nicht an ihr eigenes Wort. Wenn das nicht illegal ist, weiß ich auch nicht weiter. Um das einmal klipp und klar zu sagen: Unfgefähr niemand beschwert sich darüber, Unity mehr Geld geben zu müssen. Das Problem, das wir hier haben ist, dass Unitys Chef-Etage der Welt bewiesen hat, dass sie weder die Fähigkeit, noch das Interesse haben, vertrauenswürdig zu sein. Und diese Vertrauenswürdigkeit ist, wie gesagt, extrem wichtig für eine Engine. Selbst, wenn Unity alles morgen wieder zurück nehmen würde, würde mir jeder, der professionell in der Spielebranche arbeitet, unterschreiben, dass Unity seit dieser Woche einfach einen unfassbaren Risikofaktor darstellt. Das hat dann auch nix mehr mit beleidigt oder wütend zu tun - das ist einfach eine ganz übliche wirtschaftliche Kalkulation. Dass Unity für viele Anwendungszwecke immer noch einfach die beste Engine ist, wird sie auf lange Sicht nicht davor retten, jetzt zunehmend in der Versenkung zu verschwinden. Mehr und mehr Studios kehren Unity den Rücken zu, also werden weniger und weniger Unity-Entwickler gesucht. Wer heute in die Spieleentwicklung will, kann sich gerne Unity anschauen, aber tut gut daran, mindestens noch eine andere Engine kennen zu lernen. Auch nicht zuletzt, weil Unity im Gegensatz zu mehreren Konkurrenten in den letzten Jahren technisch ziemlich stagniert ist. Glaubt mir bitte, dass ich hier nicht irgendwie leichtfertig Unity schlecht Rede. Ich benutze diese Engine seit 2008. 15 Jahre. Seit Version 2.3. Wenn Leute sich öffentlich entrüstet von Unity abwenden, dürft ihr davon ausgehen, dass hier nicht einfach nur die Gefühle hochkochen. Wegen wütend werden wirft man nicht 5, 10, 15 Jahre Erfahrungen über Bord. Ich schaue mir für mein aktuelles Hobbyprojekt gerade Godot an. Das passt ganz gut zum Projekt. Ansonsten warte ich ab, was mein neuer Arbeitgeber für das Studio entscheidet. Vielleicht bleibe ich ja dann dort bei Unity. Aber ein gutes Wort für sie einlegen werde ich, abgesehen von Fakten, in dieser Sache nicht.
    2 points
  11. Hi, meinst du sowas? Vector3 direction = mousePosition - origin; Vector3 target = origin + Mathf.Min(targetLength, direction.magnitude) * direction.normalized;
    2 points
  12. Hallo, ich beende erstmal meinen Retro-Plattformer. Es sollten insgesamt 10 Level werden. Allerdings sind mir jetzt keine vernünftigen Maps mehr eingefallen. Somit sind es sieben unterschiedliche Maps geworden. Ich denke das reicht um es als „fertig“ spielbar zu bezeichnen. Wenn ich noch ein paar zündende Ideen für weitere Level habe, dann setze ich die einfach dazu und gibt eine neue Version. Das Spiel ist mit Tastatur und Gamepad (empfohlen) spielbar. Die Tastaturbelegung habe ich von ADWS auf die Pfeiltasten geändert. Somit kann dann mit beiden Händen gespielt werden. Das war bei der ersten Version noch nicht der Fall. Hier der Download zum Spiel: Cunning Fox 1.0.0
    2 points
  13. Ohne eine halbwegs brauchbare Beschreibung des Problems wird das nix.
    2 points
  14. Aaaalso... Vererbung würde so aussehen: public abstract class AbstractMenu { public abstract void show(); } public class BookMenu extends AbstractMenu { @Override public void show() { System.out.println("Bücher"); System.out.println("======"); System.out.println("Gib den Namen eines Buches ein."); } } Und dann nutzt man das so: AbstractMenu menu = new BookMenu(); menu.show(); Das ist halt Polymorphie - du hast irgendein Objekt, dessen Klasse von einer Superklasse erbt. Aber du hast im Zweifelsfall keine Ahnung, welche der erbenden Klassen es ist. Du weißt nur die Superklasse (AbstractMenu) und weißt deshalb, dass du eine Methode "getName" hast, die du aufrufen kannst. Du baust dir also eine Variable, die irgendein Menü referenziert, und sagt diesem Menü, dass es sich anzeigen oder auf einen Input reagieren soll. Das implementierst du dann auf dir beliebige Weise anstatt von "getName". Weiß ja nicht, wie das aussehen soll. public class Game { private AbstractMenu currentMenu; public void openMenu(AbstractMenu menu) { currentMenu = menu; currentMenu.show(); } } Das geht ganz gut und ist, wenn man den Dreh erst mal raus hat, auch ziemlich intuitiv. In der echten Welt haben wir ja auch immer Dinge, die einer übergeordneten Klasse angehören: Feuerwehrautos, Polizeiautos und Sportwagen sind alles Autos. Und deshalb weißt du, dass du ein Lenkrad vorfinden wirst, egal, in welche Art von Auto du einsteigst. Komposition lässt dieses Konzept erst einmal links liegen und sagt "es gibt halt ne Klasse und die enthält Daten, und diese Daten bestimmen dann das Verhalten. Das ist das, was Unity mit GameObjects und Komponenten macht, aber es müssen nicht immer gleich Komponenten sein. public final class Menu { private string openText; public Menu(string openText) { this.openText = openText; } public void show() { System.out.println(openText); } } Hier hast du eine Menu-Klasse. Sie ist nicht abstract, und es wird nicht davon geerbt (darum auch gleich final). Du fütterst sie einfach mit Daten, und dann macht sie damit etwas. Anstatt sowas zu machen: AbstractMenu mainMenu = new MainMenu(); AbstractMenu bookMenu = new BookMenu(); machst du dann: Menu mainMenu = new Menu(mainMenuText); Menu bookMenu = new Menu(bookMenuText); Natürlich muss man die Daten nicht unbedingt über einen Konstruktor rein füttern, sondern könnte das Objekt sich Sachen aus einer Datenbank/Datei auslesen lassen oder mehrere Setter-Methoden aufrufen oder so. Komposition ist manchmal besser, weil es Fälle gibt, wo Vererbung auf seine Grenzen stößt. Wenn du z.B. zwei sehr ähnliche Menüs hast, bei denen sich ein spürbarer Teil ihres Codes überschneidet, dann kannst du eine gemeinsame Superklasse machen: public abstract class MediaMenu extends AbstractMenu { // Hier kommt das Zeug hin, das alle MediaMenus gemeinsam haben } public class BookMenu extends MediaMenu { // Nur das Buch-spezifische Zeug } public class DVDMenu extends MediaMenu { // Nur das DVD-spezifische Zeug } Wenn dann aber die Überschneidungen anfangen, kreuz und quer zu gehen, oder sogar innerhalb einer Hierarchie Konflikte sind, dann wird's eklig. Z.B. könntest du eine Hierarchie haben wie ... > InteractableEntity > Vehicle > FlyingVehicle > Helicopter > ApacheHelicopter und jetzt merkste aber, dass du einen ApacheHelicopter haben willst, mit dem man nicht interagieren kann, weil er als Deko in einer gescripteten Sequenz funktionieren (aber sonst alles noch können) soll. Dann würdest du am liebsten die InteractableEntity aus dieser Kette heraus nehmen, kannst es aber nicht. Also musst du ein bool oder so in InteractableEntity einbauen, mit dem du alles, was diese Klasse macht, ausschalten kannst. Ist auch irgendwo Käse. Wenn du jetzt mal an Unity denkst: Da kannst du alle diese voneinander erbenden Klassen als einzelne Komponenten anlegen. Und wenn dein Code sauber ist, kannst du die Interactable-Komponente einfach vom GameObject löschen und poof! - du hast genau, was du willst. Das ist ein bisschen eine Zusammenfassung von diesem Artikel. Wenn du jetzt Komposition benutzen willst, dann ist das natürlich knuffig und nett, da Strings reinzustecken, aber Klassen können sich ja auch komplett in ihrem Verhalten unterscheiden. Das mit Komposition zu machen, da wird's überhaupt erst interessant. Du kannst z.B. Objekte mit bestimmten Verhalten in deine Menu-Objekte stopfen. Das kann dann sehr ähnlich zu Unitys Komponenten sein. Und man kann dann auch sehen, dass Vererbung trotzdem noch eine Rolle spielen kann, auch wenn es nicht mehr das "Leitkonzept" ist. In Unity gilt ja auch, dass MonoBehaviour von Behaviour von Component von Object erbt. Aber mal ein Beispiel. Du bist ja in der Konsole. Das heißt wohl, dass du string-Inputs hast und dann darauf reagierst, richtig? Das könnte man so machen: public final class Menu { private final Dictionary<string, AbstractReaction> reactions = new Dictionary<>(); public void addReaction(string input, AbstractReaction reaction) { reactions.add(input, reaction); } public void reactToInput(string input) { AbstractReaction reaction = reactions.get(input); if (reaction != null) { reaction.invoke(); } } } Dann kannst du dir deine Menüs so zusammensetzen (oder eben "komponieren"): Menu mainMenu = new Menu(); mainMenu.addRection("Bücher", new Reaction( ... )); Wie du jetzt Reactions baust, ist dir überlassen. Java kann ja seit ner ganzen Weile funktionale Dinge machen. Das wäre so ein grober Überblick
    2 points
  15. Wenn du z.B. irgend eine kleine App für Windows programmierst, z.B. in Visual Basic, dann ist der Bereich des Fensters in Ram abgelegt und solange da nichts drin passiert, wird auch nichts neu gezeichnet, also berechnet. Windows hat die komplette Info des Bildschirms im (Video)Ram und zeigt das einfach an. Wenn sich Bereiche des Bildschirminhaltes verändern, dann wird nur dieser Bereich im Ram überschrieben. Baust du deine App aber mit Unity, dann wird der Bereich bei jedem Update neu berechnet und in den Ram abgelegt. Vollkommen egal, ob sich auf dem Anzeigebereich etwas geändert hat, oder nicht. Also wenn du jetzt einfach nur ein UI Element anzeigen würdest, würde Unity immer gucken wo das Element liegt, ob etwas da drüber liegt, ob die Textur transparente Teile hat, was dahinter liegt usw. und dann mit all diesen Informationen das Bild neu berechnen. Unity überwacht nicht, ob sich die UI verändert hat und würde dann nur die Veränderungen zeichnen, nö, Unity macht immer das gleiche. Du kannst in Unity natürlich einstellen, wieviele FPS du haben willst. Aber 0 gibt es nicht. Selbst der Editor, ohne dass du auf Play gedrückt hast, zeichnet ständig neu. Du kannst das ja selber testen. Mach mal Unity kleiner und schieb das Fenster an den Rand. Jetzt machts die Ereignisanzeige auf, schiebst die auf die Andere Seite vom Screen und gehst auf Leistung. Klick mal den CPU Bereich an, damit du den Verlauf in groß siehst. Du siehst da eine Grundauslastung, wenn du die Maus in Ruhe lässt. Jetzt minimiere mal Unity. Du wirst einen Peak sehen, weil Windows jetzt kurz was zu tun hat. Danach ist aber die Grundauslastung geringer als vorher. Nicht viel, aber erkennbar. Ich hoffe du bist mit Windows unterwegs. Wenn nicht, mit dem Apfel kann man sich das auch anzeigen lassen. (Glaube ich)
    1 point
  16. Level 11 ist fertig, mit neuen Grafikset. Ich habe für diesen Level glaube ich nur 2 Tage gebraucht. Aber ich habe etwas Sorge um Inspiriation, so dass ich die nächsten 17 abwechslungsreich und originell gestalten kann.
    1 point
  17. Soweit Sound und Musik reingemacht. Den Endgegner habe ich noch überarbeitet und verbessert, jetzt hat auch er einen Schadensbalken. Ich habe auch an den Optionsmenüs gearbeitet und bin zufrieden. Den Input habe ich mit "Rewired" umgesetzt.
    1 point
  18. Musik muss man nicht im Assetstore kaufen. Da ist die Auswahl eigentlich zu gering, denn Musiker sind nicht auf Gameengines spezialisiert. Ich kenne eine Musikerin aus GB, die unheimlich vielseitig ist und auch speziell für Inidieentwickler Musik produziert. Ihre Musik, wenn gekauft, ist Roaylity-free und kann dann überall genutzt werden. Hier mal der Link zu ihrer Pond5 Seite: https://www.pond5.com/de/artist/nicolemariet_
    1 point
  19. Hallo, mir gefällt dein Projekt schon recht gut. Für ein erstes Spiel kommst du ganz gut voran. Was du auf jeden Fall noch benötigst ist ein Schadensbalken für den Boss. So hofft man immer "hat er jetzt genug?". Ich finde aber auch, das die Anzahl der Hitpoints mehr als ausreichend ist.
    1 point
  20. Hallo, ich arbeite an einem neuen Spielprojekt. Titel: Ghostly Heist Es geht um einen "Einbrecher", der Sicherheitssysteme überprüfen soll. Dafür muss er in die entsprechenden Gebäude einsteigen und die Wertsache versuchen zu entwenden. Natürlich laufen dort Sicherheitsleute umher, denen er nicht begegnen darf. Diese haben einen Sichtbereich, der in Form eines Kegels angezeigt wird. Im Augenblick steht ein Level spielbar zur Verfügung. Damit es mehr Motivation gibt den Level evtl. mehrmals zu spielen habe ich vier unterschiedliche Spielmodi vorgesehen. 1) Normaler Modus (einfach) 2) Meisterdieb (schwer) 3) Zeitmodus (in einer vorgegebenen Zeit muss der Level geschafft werden) 4) Highscoremodus (die schnellste Zeit führt den Highscore an) Die Modi 1-3 funktionieren schon. Der Highscoremodus im Moment noch nicht. Hier könnt ihr euch einen Überblick über die Version 0.2.0 verschaffen: [url='http://www.pchobbyspieleschmiede.de/gestern/GhostlyHeist_0.2.0.rar']Ghostly heist 0.2.0[/url]
    1 point
  21. Ja! Das fügt sich besser ein und hat trotzdem kaum an Qualität verloren. Ob es mit den Skys vom Assetstore besser wäre? Weiss ich nicht. Denn dein Spiel, so wie es jetzt aussieht, ist ja "nicht" auf eine kleine Farbpalette ausgelegt. Wenn du da jetzt einen Sky einfügst, der nur wenige Farbabstufungen beinhaltet, würde sich das wahrscheinlich mit dem Rest beißen...vielleicht aber auch nicht... Andererseits hast du bei den Paralax-Skys, die im Paket mit drin sind, noch mal ein paar Ebenen mehr. Und das könnte wiederum noch mehr Tiefe bringen. Tja, ich bin da wohl keine große Hilfe!
    1 point
  22. Gut! Aber für ein wenig Kritik ist inzwischen Zeit. Also: Das Spielprinzip ist gut. Da ich schon recht alt bin, kenne ich sowas natürlich schon. Es ist aber ein zeitloses Prinzip, welches auch heute noch Spaß macht. Deine Spielwelt ist echt gut arrangiert und richtig klasse finde ich den Übergang des Hintergrundes. Ich musste mir das Video 2 Mal ansehen um zu erkennen, wie du von dem bewaldeten Bereich wieder zum Himmel kommst, wenn du immer weiter runter gehst. Das ist super gelöst! Die Auswahl der Gegnertypen finde ich ach toll (wobei es mir jetzt nicht um die Grafiken, sondern um die Typen geht). Nett ist auch, dass man nach einem Abschuss immer auch das kleine Figürchen einsammeln muss, weil der Gegner sonst wieder aufersteht. Dass es da diese Portale gibt, die neue Gegner entstehen lassen, ist auch gut. Du hast einen Doppelsprung drin, kannst dich hinlegen, kannst neue Waffen finden und sie dann selber auswählen und außerdem gibt es Heilungskisten. Sehr gute Dinge für so ein Plattformer-Shoot-em-Up. Es gibt aber auch negative Dinge, die du sicherlich selber weißt. Trotzdem will ich mal schreiben, was ich so sehe. Zu allererst fehlt mir natürlich der Sound. Geräusche sind unheimlich Wichtig und können helfen sich zurecht zu finden. Ich weiß, du baust das noch ein. Trotzdem solltest du längst damit angefangen haben. Beispiele: Wenn du von einem Gegner getroffen wirst, dann wird dein Sprite leicht transparent. Ein geeigneter Sound würde dich aber viel besser warnen, denn wenn du im Getümmel auf die Gegner achtest, dann fällt das Transparente nicht so auf. Zum Ende hin warst du auf der Suche nach den letzten Gegnern. Würden die Gegner geräusche von sich geben, dann könntest du sie leichter orten. Gerade wenn du den 3D Sound nutzt. Dann weisst du, dass er rechts oder links von die ist und du weisst, wegen der Lautstärke, wie weit er weg ist. Aktive Portale könnten summen und wenn ein Gegner etsteht, könnte ein Beamsound kommen. Inaktive Portale, wenn der Zähler auf 0 steht, wären dann ohne Sound. Wobei ich persönlich die Portale aus dem Spiel nehmen würde, wenn da nichts mehr kommt. Du hast ja ganz zu Beginn geschrieben, dass du die Grafiken aus dem Assetstore hast. Ist ja nicht schlecht. Aber du solltest evtl. etwas anpassen. Die Pixeldichte sollte auf jeden Fall nah beieinander sein. Wenn du die Grünen Plattformen mit den grauen/silbernen vergleichst, siehst du sofort was ich meine. Entweder sind die Grauen zu grob oder der Kontrast ist zu hoch. Ich kann das nicht genau im Video erkennen. Wenn die Pixel passen, dann solltest du die Grauen etwas weichzeichnen. Die Wolken mit Sonne vom Hintergrund sollte auch pixeliger gestaltet werden und sich somit mit dem Rest verbinden. Die sind mir viel zu realistisch. Deine Gegner sind von Stil her ziemlich unterschiedlich. Manche wirken eher Comic-haft, Wie der Gelbe, das Skelett oder der Geist, und andere wirken erwachsener, wie die lila Fledermaus und die Blobs. Der Drache fällt komplett aus der Rolle. Die Hüpfbewegung macht mich fertig! Also irgendwie ist in deiner 27ten Dimension alles möglich. Und wenn ich jetzt den Jungen dazu ansehe, dessen Sprite als einzigstes eine schwarze Outline hat, dann nimmt das etwas von der Stimmigkeit. Die Sprung-, Fall- und Liegeanimationen des Helden sind auch relativ einfach gehalten. Er könnte etwas mehr Dynamik gebrauchen und er sollte beim Liegen nach vorne gucken. Das ist natürlich Kritik auf hohem niveau, denn es sind nur Kleinigkeiten. Nimm es dir also nicht zu sehr zu Herzen. Aber vielleicht ist ein Blick eines Anderen ja inspirierend. Also: Schön weiter machen!
    1 point
  23. Ok, gelöst. Das habe ich richtig verstanden, in NGO können NetworkVariablen nur angepasst werden, wenn der Spawn erfolgt ist. Aber über das OnValueChangeEvent kann man auch Client-Seitig nach dem Spawn auf die Anpassung des Wertes reagieren, so dass ich dieses Event als Trigger für die Visuals nutzen kann. Etwas umständlich und zunächst nicht ersichtlich, aber machbar... Viele Grüße Hellhound
    1 point
  24. Ich habe etwas an der Qualität gearbeitet. Der Spielercharakter ist ein Platzhalter. Bei den Feinden ist es noch nicht sicher. Der diagonale Boden ist nicht endgültig. Die Grafiken sind vom Asset Store. Was meint ihr? Ist die Qualität ok?
    1 point
  25. Hallo, Wünsche euch allen ein Kreatives, erfolgreiches und Stressfreies 2024.🥂🥂 Möge Unity den Ball flach halten.😉 Gruß Jog
    1 point
  26. war länger raus und fuchse mich gerade mal wieder etwas in vr rein. wenn interesse ( bild ) sachen sehen wollt kann ich euch die sketchup links dazu packen
    1 point
  27. Schöne und interessante Morgenlektüre. Das Nested Worker Singleton ist nicht schlecht. Muss ich mal testen.
    1 point
  28. Ich habe nur mal kurz in dein Video rein geschaut, weiss jetzt also nicht, ob du die Bewegung über die Animation haben willst, oder ob das Kerlchen eben auf der Stelle laufen soll und du die Bewegung dann per Script selber erstelen willst. Z.B. mit Rigidbody.AddForce. Es gibt da jetzt viele Dinge die sein könnten. Aber! Ich hatte vor vielen Jahren mal eine Tutorialreihe zur Animation mit Mecanim und das Einbinden von MoCap Animationen gemacht, als das noch ganz neu war. Heute ist immer noch vieles ganz genauso wie damals. Gerade der Part, wo man die Animationstakes anpasst, damit er läuft und dabei auch in der Spur bleibt, könnte dich interessieren. Ich hänge dir mal hier den Part 2 der Reihe an. Da erzähle ich einiges darüber. Wie gesagt ist lange her und einige Dinge sind in Unity jetzt etwas anders oder an anderer Stelle zu finden.
    1 point
  29. Grüß dich... ...da kann ich nur sagen "Boah". Schwer zu sagen, wo dein Problem liegt. Ich rate jetzt mal wild rum. Solltest du mal Langeweile haben, richte dir doch mal Git ein. Damit kannst du dann dein Projekt teilen und jeder kann es sich ansehen. Das macht es viel einfacher, setzt aber voraus, dass du dein Projekt halt, teilst. Das will nicht unbedingt jeder, aber in so einer Situation wäre es einfacher. Vor allem bei Dingen, die sich nicht nur auf Scripte beziehen ist das sinnvoll. Vielleicht hast du irgendwo einen Hacken vergessen, dich bei einem Parameter verschieben etc. 04:59 - eine Kondition für den Übergang gesetzt? Wechselt deine Animation von selbst von Default (orange) auf den Blendtree (grau)? Stimmt der Wert des Parameters? 06:47 - Threshold richtig eingestellt? Script - animator.SetFloat("horizontal", Input.GetAxis("Horizo")); "Horizontal" muss das heißen. Außer du hast deine Achsen umbenannt. Du kannst dir auch mal das Animations-Fenster auf einen zweiten Bildschirm legen und es beim Spielstart beobachten. Da kannst du schon einmal ablesen wann und wie das System in die nächsten Animation geht. Läuft der blaue Balken mehrmals durch, läuft er überhaupt einmal gesamt durch oder wechselt die Animation bevor der blaue Balken durchgelaufen ist?. Etc.
    1 point
  30. Donnerwetter, echt unglaublich, alle Probleme aufgelöst im Nichts. Alle Logik klappt, das Ratespiel kann ausgeführt werden. Habe intensiv studiert, um alle Abläufe zu verstehen und die Neuerungen richtig einzubauen. Besonders erstaunlich finde ich, dass nun plötzlich die Teilbilder richtig platziert sind, was wohl darin begründet sein könnte, dass das Programm die Teilbilder 0 bis 8 automatisch auf dem Display richtig verteilt, wenn man sie alle mit Schleife aufruft und, wie in Deiner Lösung, dann auf Buttonklick einzeln aktiviert (SetActive(true)). Das ist in dieser Form natürlich alles noch zig Nummern zu hoch, um selbständig zu solchen Lösungen zu kommen. Dennoch zeigt sich an diesem Dialog mit Sascha, wie wichtig so ein Forum und die damit aktiven Helfer, für einen Anfänger sind. Ohne dies wäre ich frustriert in der Sackgasse hängen geblieben und hätte resignierend abgebrochen. Habe so dabei nicht nur ein Projekt beenden können, sondern auch sehr viel gelernt, was bei nächsten Versuchen Anwendung finden kann. Also, habe tausend Dank, Sascha, für Geduld und Ausdauer, mit mir hierbei zu einem guten Ende gekommen zu sein. Bis zu einer nächsten Gelegenheit Peter
    1 point
  31. Wenn du dir jetzt noch die Regeln dieses Forenbereiches durchlesen würdest, wüsstest du vielleicht sogar, warum da keine Antworten stehen. Und nein, ich weiß nicht, wo man gut Leute für ein Web3-Projekt finden kann. Vor allem nicht heutzutage, wo dieser Trend zum Glück weitestgehend ausgestorben ist.
    1 point
  32. Das nicht öffnen von C#-Skripts über Unity kann verschiedene Ursachen haben. Zum einen kann es daran liegen das du aus irgendeinen Grund im Paketmanager von Unity das Visual Studio Paket nicht installiert hast. Bis Unity Version 2022 gibt es für Visual Studio Code und Visual Studio je ein eigenes Paket welches Du installieren musst. Ab Unity 2023 sind die beiden Pakete zusammengelegt worden und es gibt dann nur noch das „VisualStudioEditor“ Also schaue bitte nach welches Paket du Installiert hast. Verwendest Du Visual Studio dann lautet das Pakte „VisualStudioEditor“ Arbeitest du mit Visual Studio Code dann musst du „VisualStudioCodeEditor“ installieren. Wenn du dein Unity-Projekt öffnest, bekommst du dann Fehlermeldungen? Also das irgendein Teil deines Codes nicht richtig geladen werden konnte oder Verweise nicht gefunden wurden? Das nächste was Du machen könntest ist dein Unity-Projekt bereinigen indem du alle Dateien und Verzeichnisse aus den Stammverzeichnis deines Projekts löscht bis auf folgende Verzeichnisse und deren Inhalt: Assets (Dort liegt dein komplettes Projekt drin, bitte nicht löschen auch nicht den Inhalt) Packages ProjectSettings Wenn du git mit eingebunden hast, dann bitte auch nicht .git, .gitattributes, .gitignore löschen, ebenso Benutzerdefinierte Verzeichnisse nicht löschen. Noch mal kurz für dich als kleine Check liste: Gibt es Fehler beim laden vom Unity-Projekt (Dialog Fenster öffnet sich) Ist das VisualStudioEditor (für VisualStudio) Paket installiert oder VisualStudioCodeEditor (für Visual Studio Code) Wenn Fehler noch weiterhin Existiert, dann folgende Verzeichnisse löschen: Library, Logs, obj, Temp, UserSettings und alle *.csproj sowie *.sln Dateien aus dem Stammverzeichnis löschen. (Bitte Backup machen bevor du etwas löscht). Danach wenn du die Dinge gelöscht hast, das Projekt nochmal über den UnityHub öffnen. Es kann sein das Du eine Meldung bekommst mit einen Hinweis, einfach auf Continue klicken und warten. Je nach größe deines Projekts kann es mehrere Minuten dauern bis der Editor geladen wurde, da Unity alle Verweise sucht und Metadaten neu schreiben muss. Es kann passieren das Du nachdem laden ein weißes Editor Fenster bekommst, keine Angst, Unity Editor einfach schließen und das Projekt neu laden, danach sollte es wieder funktionieren. Das sind Ursachen mit denen Ich selbst schon zu tun hatte auch in Verbindung mit Visual Studio. Ich hoffe das dir das etwas weiter Hilft, sonst melde dich einfach wieder hier. Und bitte bisschen mehr Angaben machen was du gemacht hast und was nicht. Das Hilft uns bei der Hilfestellung etwas besser. Lg Gruftsocke
    1 point
  33. Hallo Ich finde es echt gut, dass ihr das hier so begleitet. Für mich, der das wirklich nur zum Spaß für sich macht, ist das alles nicht so wichtig, aber interessant ist es natürlich trotzdem! Christoph
    1 point
  34. Hier ist noch ein älteres Projekt basierend auf Raycast:
    1 point
  35. Alles klar. Beim Installieren wird mit Unityhub ein "Standard Assets Example Project" angelegt. Das funktioniert nicht mit meiner Version, aber die Grafiken sind vorhanden. MfG
    1 point
  36. war ein böser Denkfehler. Sorry Christoph
    1 point
  37. Es gibt noch Vector3.ClampMagnitude, welches einmal das Berechnen der Quadratwurzel einspart. Ist vielleicht auch minimal lesbarer. Aber das sind nur minimale Optimierungen gegenüber @Antragons Lösung.
    1 point
  38. Moin! Static gibt's ja nicht nur einfach. "Static" steht für eine Vielzahl an einzelnen Flags. Einige davon haben mit Performance überhaupt nix am Hut: "Contribute GI", "Navigation Static", "Off Mesh Link Generation" und "Reflection Probe Static". "Occluder Static" und "Occludee Static" beziehen sich auf Occlusion Culling, also das Nicht-Rendern von Dingen, bei denen Unity sich sicher ist, dass sie sowieso gänzlich verdeckt werden. Das anzuschalten macht aber überhaupt nichts, wenn du das Occlusion Culling-System nicht auch nutzt. "Batching Static" erlaubt es Unity, das Rendern von Meshes mit gleichem Material in einem Rutsch in Auftrag zu geben. Das reduziert Draw Calls und kann gut für die Rendering-Performance sein. Damit da spürbar was passiert, müssen die Meshes sich aber eben ein Material teilen.
    1 point
  39. Vielen Dank für den Gedankenanstoß in Sachen Maskieren. Ich habe es mit einer Maske, die die in einer coroutine skaliert wird, umgesetzt. Eine Maske hat den Vorteil, dass ich nur eine einzige, unabhängig von der Farbe des Blocks, benötige. Nun entspricht der visuelle Effekt genau meinen Vorstellungen, also dem Original.
    1 point
  40. Moin! Beide Links 404en. Ist dein Repo privat?
    1 point
  41. Da mir das mit dem Highscoremodus zu aufwändig ist, habe ich diesen durch ein Erfolgssystem ersetzt. Hier fünf der zu erreichenden Erfolge. Es kommen noch weitere dazu.
    1 point
  42. Danke für die Infos, aber ich sehe da irgendwie keine Frage, auf die ich antworten könnte. Das einzige, was ich raten könnte: Den Inhalt von Input-Feldern kannste mit ".text = wasauchimmer;" ändern.
    1 point
  43. Hallo, irgendwann muss man loslassen. Mein kleines Siedlerspiel ist jetzt final. Ich hoffe ich habe die meisten Bugs gefunden und beseitigt. Jedenfalls stehen dem Spieler jetzt acht Missionen zur Verfügung in denen er seine Dörfer und Städte aufbauen und weiter entwickeln lassen kann. Ein Sandkastenmodus steht noch nicht zur Verfügung. Den werde ich aber noch nachschieben. Hier der Link zum Download der Version 1.0.0: http://www.pchobbyspieleschmiede.de/besiedlung/OrfayasBesiedlung_1.0.0.rar
    1 point
  44. Ach, in der Softwareentwicklung muss einem nichts peinlich sein Zu oft sieht man den Wald vor lauter Bäumen nicht, und dann kommt ein Kollege, wirft einen Blick drauf und findet den Fehler^^
    1 point
  45. Moin! Du hast halt den Knopf, mit dem man das Licht an macht, sogar rot markiert...?
    1 point

Ankündigungen

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

Weiterleitung zum Entwickler "daubit"



×
×
  • Neu erstellen...