Jump to content
Unity Insider Forum

Leaderboard

Popular Content

Showing content with the highest reputation since 04/15/2023 in all areas

  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. Leveldesign und Programmierung von mir, Grafiken sind aus dem Asset-Store.
    1 point
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. Hallo, ich habe jetzt mein Projekt fertiggestellt. Tauche ein in die aufregende Welt des Einbruchs mit Ghostly Heist! Spiele als raffinierter Dieb, der zusammen mit seinem Partner "Karl Langfinger" vier riskante Missionen absolvieren muss. Navigiere durch vier spannende Locations, umgehe geschickt die Wachen und ├╝berwinde knifflige Hindernisse, die sich dir in den Weg stellen. Mit insgesamt vier Levels und drei aufregenden Spielmodi bietet Ghostly Heist Spielspa├č und Nervenkitzel! Wage dich in die Dunkelheit und erlebe das Abenteuer deines Lebens. Hol dir jetzt Ghostly Heist und zeige, dass du das Zeug zum erfolgreichsten Einbrecher hast! - Vier unterschiedliche Umgebungen - 12 Missionen - Spieldauer etwa 1,5 Stunden Download und weitere Infos: https://grinseengel.itch.io/ghostly-heist
    1 point
  22. 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
  23. 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
  24. 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
  25. 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
  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. Moin! Ich habe endlich die ├╝berarbeitete Version meines Unity-Singleton-Artikels fertig. Wer Singletons nicht kennt, sich fragt, was das eigentlich genau ist oder einfach nur potentiell seinen Horizont erweitern will, darf gerne Mal einen Blick riskieren. Und wer meint, dass man Singletons nicht benutzen sollte, erst recht http://blog.13pixels.de/2023/unity-and-the-mysterious-singleton/ Ich hatte 2019 schon einen Artikel dar├╝ber geschrieben, aber meine Ansichten zu dem Thema haben sich seitdem ein bisschen ver├Ąndert. Der neue Artikel ist ein ganzes St├╝ck objektiver und klarer in seinen Inhalten.
    1 point
  28. Sch├Âne und interessante Morgenlekt├╝re. Das Nested Worker Singleton ist nicht schlecht. Muss ich mal testen.
    1 point
  29. 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
  30. 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
  31. 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
  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. Ich habe es hingekriegt, ein Skript, das die Map kopiert und an die Tilemap angeh├Ąngt ist. Die Position und die R├Ąnder der Map stelle ich manuell ein. using UnityEngine; using UnityEngine.Tilemaps; public class GroundTilemapScript : MonoBehaviour { public GameObject tileMapPreflab; protected Tilemap tileMapComponent; protected Tilemap[] tileMapClone = new Tilemap[8]; public Vector2Int tileMapPosition; public Vector2Int tileMapSize; protected static bool hasDone = false; public Grid grid; public float tileMapBorderLeftPosition; public float tileMapBorderRightPosition; public float tileMapBorderTopPosition; public float tileMapBorderBottomPosition; // Start is called before the first frame update void Awake() { tileMapBorderLeftPosition = (float)tileMapPosition.x - (((float)tileMapSize.x) / 2f); tileMapBorderRightPosition = (float)tileMapPosition.x + (((float)tileMapSize.x) / 2f); tileMapBorderTopPosition = (float)tileMapPosition.y + (((float)tileMapSize.y) / 2f); ; tileMapBorderBottomPosition = (float)tileMapPosition.y - (((float)tileMapSize.y) / 2f); ; } void Start() { if(!hasDone) { tileMapComponent = tileMapPreflab.GetComponent<Tilemap>(); tileMapClone[0] = Tilemap.Instantiate(tileMapComponent); tileMapClone[0].transform.SetParent(grid.gameObject.transform); tileMapClone[0].transform.position = Vector2.left * tileMapSize.x + Vector2.up * tileMapSize.y; tileMapClone[0].transform.position += tileMapComponent.transform.position; tileMapClone[1] = Tilemap.Instantiate(tileMapComponent); tileMapClone[1].transform.SetParent(grid.gameObject.transform); tileMapClone[1].transform.position = Vector2.left * tileMapSize.x; tileMapClone[1].transform.position += tileMapComponent.transform.position; tileMapClone[2] = Tilemap.Instantiate(tileMapComponent); tileMapClone[2].transform.SetParent(grid.gameObject.transform); tileMapClone[2].transform.position = Vector2.left * tileMapSize.x + Vector2.down * tileMapSize.y; tileMapClone[2].transform.position += tileMapComponent.transform.position; tileMapClone[3] = Tilemap.Instantiate(tileMapComponent); tileMapClone[3].transform.SetParent(grid.gameObject.transform); tileMapClone[3].transform.position = Vector2.up * tileMapSize.y; tileMapClone[3].transform.position += tileMapComponent.transform.position; tileMapClone[4] = Tilemap.Instantiate(tileMapComponent); tileMapClone[4].transform.SetParent(grid.gameObject.transform); tileMapClone[4].transform.position = Vector2.down * tileMapSize.y; tileMapClone[4].transform.position += tileMapComponent.transform.position; tileMapClone[5] = Tilemap.Instantiate(tileMapComponent); tileMapClone[5].transform.SetParent(grid.gameObject.transform); tileMapClone[5].transform.position = Vector2.right * tileMapSize.x + Vector2.up * tileMapSize.y; tileMapClone[5].transform.position += tileMapComponent.transform.position; tileMapClone[6] = Tilemap.Instantiate(tileMapComponent); tileMapClone[6].transform.SetParent(grid.gameObject.transform); tileMapClone[6].transform.position = Vector2.right * tileMapSize.x; tileMapClone[6].transform.position += tileMapComponent.transform.position; tileMapClone[7] = Tilemap.Instantiate(tileMapComponent); tileMapClone[7].transform.SetParent(grid.gameObject.transform); tileMapClone[7].transform.position = Vector2.right * tileMapSize.x + Vector2.down * tileMapSize.y; tileMapClone[7].transform.position += tileMapComponent.transform.position; hasDone = true; } } private void OnDrawGizmosSelected() { Gizmos.color = Color.blue; Gizmos.DrawWireCube((Vector2)tileMapPosition, (Vector2)tileMapSize); Gizmos.DrawWireSphere((Vector2)tileMapPosition, 10f); } } Das an die GameObjects (Feinde, Kugeln und andere) angeh├Ąngte Skript. Es berechnet die k├╝rzeste Entfernung zum Spieler aus den m├Âglichen Transportpositionen und nutzt diese Position f├╝r den Transport: using UnityEngine; public class CheckObjectPositionScript : MonoBehaviour { protected GameObject player; protected SupanthaPaul.PlayerController playerCheck; private Vector3 objectPosition; private Vector3 playerPosition; // Start is called before the first frame update protected virtual void Start() { player = FindAnyObjectByType<SupanthaPaul.PlayerController>().gameObject; playerCheck = player.GetComponent<SupanthaPaul.PlayerController>(); } // Update is called once per frame protected virtual void FixedUpdate() { bool change = false; objectPosition = transform.position; playerPosition = player.transform.position; float distanceObjectX = Mathf.Abs(objectPosition.x - playerPosition.x); float distanceObjectXRight = Mathf.Abs((objectPosition.x + playerCheck.tileMapSize.x) - playerPosition.x); float distanceObjectXLeft = Mathf.Abs((objectPosition.x - playerCheck.tileMapSize.x) - playerPosition.x); float distanceObjectY = Mathf.Abs(objectPosition.y - playerPosition.y); float distanceObjectYTop = Mathf.Abs((objectPosition.y + playerCheck.tileMapSize.y) - playerPosition.y); float distanceObjectYBottom = Mathf.Abs((objectPosition.y - playerCheck.tileMapSize.y) - playerPosition.y); if (distanceObjectX < distanceObjectXRight && distanceObjectX < distanceObjectXLeft) { } else if (distanceObjectXRight < distanceObjectXLeft) { change = true; objectPosition.x += (float)playerCheck.tileMapSize.x; } else { change = true; objectPosition.x -= (float)playerCheck.tileMapSize.x; } if (distanceObjectY < distanceObjectYTop && distanceObjectY < distanceObjectYBottom) { } else if (distanceObjectYTop < distanceObjectYBottom) { change = true; objectPosition.y += (float)playerCheck.tileMapSize.y; } else { change = true; objectPosition.y -= (float)playerCheck.tileMapSize.y; } transform.position = objectPosition; if (change) Debug.Log(gameObject.name +" "); } } Das dem Player beigef├╝gte Skript: playerPosition = transform.position; if (playerPosition.x > tileMapBorderRightPosition) { playerPosition.x -= (float)tileMapSize.x; } else if (playerPosition.x < tileMapBorderLeftPosition) { playerPosition.x += (float)tileMapSize.x; } if (playerPosition.y > tileMapBorderTopPosition) { playerPosition.y -= (float)tileMapSize.y; } else if (playerPosition.y < tileMapBorderBottomPosition) { playerPosition.y += (float)tileMapSize.y; } transform.position = playerPosition;
    1 point
  34. 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
  35. Jein. Aktuell nicht, aber da sie ja bereits gesagt haben, dass sie die ToS jederzeit nach Lust und Laune ├Ąndern wollen, kann immer noch alles passieren. Was nach dem aktuellen Stand (der sich durchaus wieder ├Ąndern kann) passiert ist, dass der Play Store dein Spiel zusammen mit allen anderen Unity-Spielen irgendwann einfach raus schmei├čt, weil Unity-Apps gegen deren Regeln versto├čen. Aktuell sollen ja offenbar die Vertreiber, also Play Store, App Store, Steam usw. den Kram bezahlen. Das werden die ziemlich sicher nicht einfach so mit sich machen lassen. Ob existierende Apps, die z.B. seit dieser Woche auch keine Updates mehr kriegen, irgendwie gesch├╝tzt sind... und sowieso alles andere... steht in den Sternen.
    1 point
  36. Hier ist noch ein ├Ąlteres Projekt basierend auf Raycast:
    1 point
  37. 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
  38. war ein b├Âser Denkfehler. Sorry Christoph
    1 point
  39. 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
  40. Dies ist der derzeitige Stand meines beyound colums remake. Aenlichkeiten im Design zu TETRIS unltimate sind nicht zufaellig.
    1 point
  41. 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
  42. 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
  43. Der Code sieht in Ordnung aus, soweit ich das sehen kann. Meine erste Idee w├Ąre, dass da vielleicht der Rigidbody irgendwie Interpolation machen will... ist der auf Interpolate gestellt?
    1 point
  44. Moin! Beide Links 404en. Ist dein Repo privat?
    1 point
  45. 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
  46. 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
  47. 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
  48. Sieht schon sehr nice aus daf├╝r das es 'nur Mal zwischen durch' was sein sollte. Nur f├Ąllt mir auf das du f├╝r den Hintergrund einen paralaxen Effekt anbringen k├Ânntest.
    1 point

Announcements

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

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...