Jump to content
Unity Insider Forum

All Activity

This stream auto-updates     

  1. Today
  2. Hall├Âchen, ist bereits ein uraltes Tutorial vom Hummelwalker, aber vielleicht hilft's. https://www.youtube.com/watch?v=6-aXYsRUnnQ Lg Ricky-W
  3. Wackeldackel Nostalgie ­čÖé Das Hoverfahrzeug schaut interessant aus!
  4. Yesterday
  5. Hallo ich werde es mal registry probieren. wenn es einer will, dann wird er es schaffen, aber auch nicht wirklich schlimm... Danke christoph
  6. Kommt auf das Zielsystem an (Mac usw. kenn ich mich nicht aus), bei Windows w├╝rde ich es in der Registry verstecken, also nicht PlayerPrefs sondern ├╝ber die Windows-API. Die kann man auch ├╝ber C# modifizieren. Wasserdicht ist es nat├╝rlich nicht, der Spieler kann alles auf seinem lokalem PC alles "manipulieren". Es gibt auch diverse Tools womit man leider Registry├Ąnderungen einfach "tracken" kann. Wenn man noch mehr machen will kann man Informationen auch innerhalb von Plattenpartitionen verstecken (hidden blocks), da bin ich mir aber nicht sicher ob man da ├╝ber C# rankommt.
  7. Wenn man etwas weiter ausholt: - einen NavMesh f├╝r deine Szene erstellen damit du einen Navmesh-Agent verwenden kannst - einen Controller verwenden oder selbst programmieren der den Agent steuern kann - dieser Controller sollte ebenfalls die Animationen des Gegners steuern k├Ânnen und diese mit der Bewegung des Agents synchronisieren Je nachdem ob du diesen "AI-Controller" selbst programmierst oder wie viel dieser Controller k├Ânnen soll (sauber synchronisierte Rootmotion-Animationen zwischen Navmesh-Agent oder nur einfache Animationen ohne Rootmotions) entsprechend aufwendig oder weniger. Wenn man beispielsweise einen fertigen Controller aus dem Asset-Store verwendet hat man die Punkte 2 und 3 relativ schnell erledigt. Hat man die oberen Punkte alle abgehakt bzw. entschieden, dann kommt man zu dem Punkt was @chrische5 vorgeschlagen hat, wo man sich dann um die eigentliche KI-Logik k├╝mmern muss. Aber auch hier gibt es schon fertige Skripts wie "Follow" oder "Patrol" oder "Attack" (f├╝r einige Controller) oder man taucht selbst in die Skripte ein. Hier kann man gut und gerne auch als Anf├Ąnger selbst Hand anlegen. Die Entwicklung eines Controllers ist schon etwas aufweniger, aber je nachdem was man alles haben will ... nat├╝rlich kann man auch ohne NavMesh auskommen (dann bleibt der Gegner halt mal an irgend einer Ecke h├Ąngen) und nur einfach eine Laufanimation abspielen wenn der Gegner sich bewegt (was halt optisch nicht AAA ist aber f├╝r kleinere Spiele vollkommen ausreichend).
  8. Hallo Habt ihr eine Idee, wie ich es erm├Âglichen kann, dass ein Spiel nur genau einmal gestartet werden kann. Am besten ohne Internet, das scheint mir zu dick aufgetragen. Ich k├Ânnte eine Datei verwenden und den start hineinsxhreiben und dann zum Start immer dort schauen. Oder in die registry oder oder oder. Was ist halbwegs schwer zu knacken und es darf nat├╝rlich auch nur im echten build sein und nicht im playmode. Allerdings muss ich es auch testen k├Ânnen. Ich bin etwas planlos. Christoph
  9. Hallo Dein Spieler hat eine Position und du k├Ânntest den Zombie anweisen, auch auf diese Position zu gehen. Spontan w├╝rde ich dazu Mathf.Lerp verwenden. Eventuell machst du noch einen Kreis ab dem der Zombie dann nicht mehr zur Position des Spielers geht, sondern bei├čt oder ├Ąhnliches. Christoph
  10. Ich mache ein Horrorspiel.Als n├Ąchstes wollte ich ein Zombie nehmen,welches den Spieler verfolgt(er muss wegrennen).Jedoch wei├č ich nicht wie ich das in einen Script verwandle. W├╝rde mich ├╝ber Hilfe freuen.
  11. Danke f├╝r die Links ZerOCool. Der PathPainter kommt dem schon sehr nahe, was ich suche. Auch dein Terrain Deformer klingt interessant: Eine Funktion um beliebige Geometrie ans Terrain anzupassen fehlt definitiv im Terraineditor. Auch Bitmaps (heightmaps), die man auf dem Terrain skalieren, rotieren und platzieren kann finde ich fehlt im Editor. Ich werde mir wohl EasyRoads kaufen, es hat noch ein paar zus├Ątzliche Funktionen, wie z.B. den Winkel der Pfadebreite (jedes einzelnen Nodes) einstellen und Seitenobjekte wie Leitplanken und Z├Ąune autom. platzieren. Das k├Ânnte f├╝r weitere Projekte n├╝tzlich werden.
  12. Hallo KaBau, ich h├Ątte da eine Frage : Ich programmiere gerade einen Space Invaders Clon. Doch ich schaffe es einfach nicht das mein Raumschif an der Maus "klebt". K├Ânntest du mir vieleicht ein paar Tipps geben? Viele Gr├╝├če Fazeli24
  13. Last week
  14. Ist halt auch nicht gerade g├╝nstig: https://assetstore.unity.com/packages/tools/terrain/path-painter-163352 kostet weniger aber ob es was taugt wei├č ich nicht: https://assetstore.unity.com/packages/tools/terrain/terrain-mountain-road-maker-60550 Ansonsten die Terrain Splatmap(s) exportieren, in Photoshop bearbeiten und dann wieder importieren ist am billigsten. PS: Ich bin gerade dabei eine Art Terrain-Deformer zu erstellen, theoretisch sollte dieser in der Lage sein einen Pfad auf einem Terrain zu berechnen. Ich m├╝sste das Tool nur im einen Spline und Meshgenerator erg├Ąnzen. Das Tool ist wenn es fertig ist dazu in der Lage das Terrain an beliebige Geometrie anzupassen. Vornehmlich war die Idee damit H├Ąuser ins Terrain einzubetten ...
  15. Wichtig ist die Frage wo du die Physik, Collider und so was berechnen willst. Ich selbst schreibe meinen Server in Unity. Dort l├Ąuft auch eine Map und die NPC's werden dord berechnet und alles. Diesen builde ich dann Headless als Linux build. Es wird also grafisch nichts berechnet aber ich kann die Grundfunktionen, Physik, Collider und alles auf dem Server berechnen. Wenn du alles auf dem Client berechnen l├Ąsst wird es leicht hackbar nach meinen Erfahrungen. Schau dir doch mal die Videos von Tom Weiland an. Das ist ein Kollege der mal eine gute Tutorialreihe dazu gemacht hat. (C# Networking Tutorials)
  16. Hallo Ich benutze einfach eine statische Klasse und packe dort die entsprechenden Funktionen rein. Diese Date nehme ich dann von Projekt zu Projekt mit. Ist nicht sehr elegant, aber wunderbar simpel: namespace Chrische { public static class Tools { public static Vector3 GetMouseWorldPostion(Vector2 mousePosition) { return Camera.main.ScreenToWorldPoint(Input.mousePosition); } public static T GetChildComponentByName<T>(GameObject objectToSearch, string componentName) where T : Component { foreach (T component in objectToSearch.GetComponentsInChildren<T>(true)) { if (component.gameObject.name == componentName) return component; } return null; } public static List<T> GetChildComponentsByName<T>(GameObject objectToSearch, string componentName) where T : Component { var items = new List<T>(); foreach (T component in objectToSearch.GetComponentsInChildren<T>(true)) { if (component.gameObject.name == componentName) items.Add(component); } return items; } public static T GetMax<T>(params T[] numbers) { return numbers.Max(); } public static T GetMin<T>(params T[] numbers) { return numbers.Min(); } Christoph
  17. Ich suche ein Tool (kostenlos oder kosten-g├╝nstig) um Wege und Pfade in Terrains zu erstellen. Also so eine Art Spline-Tool, was die Oberfl├Ąche des Terrains modelliert. Bis lang habe ich EasyRoads gefunden, aber vielleicht gibt es noch alternative Tools ? Mir geht es in erster Linie um das Modellieren des Terrains und nicht um die Strassenmeshs. LG Vreezer
  18. Ich w├╝rde sogar empfehlen, ein Git-Repo zu erstellen, aber... eins nach dem anderen. Github hat auch eine nette "Gists"-Sektion, die sieht bei mir so aus. Sachen, die du nicht (oder zumindest: nicht ausschlie├člich) alle in einem Paket haben willst, k├Ânnen da sehr sch├Ân hin. Das geht auch mit einem Git-Repo sehr gut - du musst es ja nicht bei Github oder so hochladen, sondern kannst es lokal behalten. Namespaces sind nett, um den Scope etwas kleiner zu halten. Oder anders gesagt: Wenn du anf├Ąngst, zu tippen, dann ploppen dir da ja Vorschl├Ąge auf. Und diese Liste kann man etwas k├╝rzer halten, indem man seine Sachen in Namespaces packt. Namespaces erlauben dir aber nicht, Code in dein Projekt zu importieren oder so. Der Code liegt entweder vor oder er tut es nicht. Eine using-Direktive hat darauf keinen Einfluss. Gerne! Was du haben willst, ist ein Paket, das der Paketmanager f├╝r dich importiert. Seit Unity 2018.irgendwas hast du ja zwei Hauptordner in deiner Project View: "Assets" und "Packages". Assets ist f├╝r alle Dinge, die f├╝r dein Projekt spezifisch sind, w├Ąhrend Packages eben Pakete enth├Ąlt, die nicht speziell f├╝r dieses Projekt sind, sondern generell eingesetzt werden k├Ânnen. Ein Paket erstellst du, indem du ein Paket-Manifest in einen Ordner voller Assets legst. Daf├╝r will Unity afaik noch Editor-Support bauen. Laut Manual funktioniert das Manifest Window in 2019.4, tut's bei mir aber nicht. Also bastelst du dir im Moment einfach eine json-Datei in einem beliebigen Text-Editor. Das sieht dann etwa so aus. Die Datei muss dabei genau "package.json" hei├čen. Erstelle dir gerne eine Kopie von meinem Manifest und passe es an. Nette Falle: Die Versionsnummer muss dem Schema "x.x.x" entsprechen, "x.x" (z.B. "0.1" statt "0.1.0") ist nicht erlaubt. Dann m├╝ssen noch alle Scripts einer Assembly Definition untergeordnet sein. Dazu kannst du in deinen Assets rechtsklicken, "Create", und dann "Assembly Definition". Dem Ding gibst du einfach einen sinnvollen Namen - bei mir gibt's ein Paket namens "Unity-Essentials" (), und die asmdef-Datei hei├čt dann "ThirteenPixels.Unity-Essentials". Schau dir den Aufbau auch gerne genauer in meinem Projekt an, das ich verlinkt habe. Wenn das Paket so eingerichtet ist (klingt nach viel Arbeit, aber da gew├Âhnt man sich ganz schnell dran), dann kannst du in deinem Projekt, in dem du das Paket importieren willst, den Paketmanager daf├╝r benutzen. Den findest du oben unter "Window", "Package Manager". Damit der auch richtig funktioniert, solltest du auf jeden Fall Unity 2019.3 oder h├Âher benutzen, davor hatte der noch erhebliche M├Ąngel und man musste per Hand Dinge in eine Textdatei eintragen. Sobald du den Paketmanager offen hast, kannst du das hier ausw├Ąhlen: Und dann im Dialog die package.json raussuchen und ausw├Ąhlen. Der Paketmanager importiert jetzt das Paket und packt es in den Packages-Ordner deines Projekts: Um da jetzt noch auf den Anfang zur├╝ck zu kommen: Du kannst wunderbar aus deinem Paket ein Git-Repo machen, dann hast du schon einmal Versionierung (was super ist). Optional kannst du das Repo dann auch noch auf Github oder sonstwo hinpushen, dann hast du direkt noch ein Online-Backup und kannst von ├╝berall auf das Paket zugreifen (wenn du mal an einem anderen Rechner sitzt oder jemand anderes mit dir arbeitet). ├ľffentlich kann so ein Ding auch super f├╝r dein Portfolio sein. Zu guter Letzt finde ich es irgendwie simpler, Updates von Paketen zu ziehen, wenn diese in einem Git-Repo sitzen. Statt "from disk" w├Ąhlst du sonst im Paketmanager dann "from git URL" aus und fertig. Jedenfalls ist das dann auch nicht mit Kanonen auf Spatzen schie├čen Damit sage ich nicht, dass du das machen musst - wie gezeigt kannst du Pakete auch einfach von der Platte laden.
  19. Hallo zusammen, langsam w├Ąchst mein Anf├Ąngerwissen ├╝ber Unity, und ab und zu schreibe ich eine Funktion/Method, die ich in anderen kleinen Projekten wiederverwenden m├Âchte. Github m├Âchte ich daf├╝r nicht in Anspruch nehmen, das halte ich f├╝r Schie├čen mit Kanonen auf Spatzen. Mein Gedanke ging in die Richtung, dass ich gern eine zentrale Sammlung lokal auf meinem Rechner erstellen m├Âchte, wo ich meine Methods sammle und von wo aus ich mein gesammeltes Wissen anzapfen kann. Da ich am Beginn eines C#-Scripts gesehen habe, dass ich dort eine Using-Anweisung platzieren kann, versuchte ich, selbst so etwas zu erstellen und stie├č auf den Begriff "Namespace". Doch es will mir einfach nicht gelingen, so etwas hinzubekommen. Leider finde ich auch in den einschl├Ągigen Foren und im Internet nichts dar├╝ber. Ich wei├č auch nicht, ob das mit dem Namespace tats├Ąchlich richtig ist. Ich dachte, ich k├Ânnte zum Nachvollziehen der Vorgehensweise die dort oben im C#-Script genannten Dateien auf meiner Festplatte finden, indem ich nach "UnityEngine.UI" oder ├Ąhnlichem suche, doch dann wird man mit Ergebnissen zugesch├╝ttet. Mehrere hundert wenn nicht tausend Dateien vom Typ DLL erscheinen, mit denen ich so direkt nichts anfangen kann. Half also nichts. Es muss doch einfacher gehen. Deshalb meine Frage ins Forum, ob sich jemand damit auskennt und mir mit ein paar Worten erkl├Ąren kann, wie man das macht. Ich w├Ąre euch sehr dankbar, dann m├╝sste ich meine Funktionen nicht in jedes C#-Script kopieren. Diese Kopiererei macht die Pflege der Funktionen/Methoden nicht gerade einfach, vor allem dann nicht, wenn man mal etwas daran ├Ąndert. Viele Gr├╝├če aus Br├╝hl, Andr├ę
  20. Moin, in der Regel wird bei Game Servern TCP, oder UDP verwendet. Du kannst einen TCP Server ohne Probleme in C# mit .Net Core auf Windows entwickeln und auf Linux laufen lassen. Der Linux Server muss nur .Net Core installiert haben. Es gibt eine Reihe von Videos, die zeigen, wie man einen TCP Server f├╝r Unity in .Net Core baut: Tom Weiland Wenn du den Server rein aus Interesse an der Materie selber machen m├Âchtest hast du damit auf jeden Fall schon einmal einen Anhaltspunkt. Wenn dich Networking nicht so interessiert und du lieber weiter an deinem Spiel arbeiten m├Âchtest, w├╝rde ich dir eher raten auf etwas zur├╝ckzugreifen, was schon existiert. Ich pers├Ânlich bin kein gro├čer Fan von Photon, weil du da pro CCU zahlen sollst. Habe aber schon ziemlich viel gute Erfahrung mit Mirror gemacht, das ist kostenlos, Open Source und hat eine gute Dokumentation. Liebe Gr├╝├če
  21. Ja ist ein Webserver (und Apache kann man nat├╝rlich auch verwenden) und die Kommunikation l├Ąuft ├╝ber HTTP, aber HTTP zu verwenden sollte f├╝r einen Gameserver in Ordnung sein. Klar hat HTTP einiges an Overhead das durch die Leitung geht, daher kann eine L├Âsung wohl auch ein TCP-Server oder sowas sein, aber damit kenne ich mich nicht aus. Ich denke je h├Âher der Traffic des Spiels sp├Ąter sein wird desto mehr sollte man vielleicht in Richtung TCP gehen um Bandbreite zu sparen. Man kann sogar mit Unity einen "schlanken" Server bauen, h├Ątte den Vorteil das Client und Server zusammenpassen. Und dann gibt es auch noch Frameworks wie Photon- oder Smartfox-Server ... Einige Smartphonespiele verwenden sowas und sind vollkommen zufrieden damit. Hier hat auch mal jemand danach gefragt, aber so genau kenne ich mich mit Socket-Programmierung nicht aus:
  22. Hi, Tomcat ist doch ein Webserver, oder? Kann man da mit Sockets arbeiten, oder l├Ąuft was alles ├╝ber Web-Requests? Bei Web-Requests bin ich mir nicht sicher, wie performant das Alles dann wird, da man ja zB bei Json auch jede Menge Overhead hat. (Ich bin eigentlich Web-Entwickler, aber eher PHP, dH ich k├Ânnte doch auch einen Apache nutzen, oder?) Gru├č
  23. Danke f├╝r die R├╝ckmeldung! Freut mich das es geklappt hat
  24. Problem gel├Âst: Ich hatte "AudioClip" statt "AudioSource" in meinem Skript­čśÇ
  25. Danke f├╝r die vielen Antworten! Ich habe es gemacht wie Hermetes es erkl├Ąrt hat. Trotzdem bekomme ich nur diese Fehlermeldung: Assets\Scripts\SlimeControl.cs(43,27): error CS1061: 'AudioClip' does not contain a definition for 'volume' and no accessible extension method 'volume' accepting a first argument of type 'AudioClip' could be found (are you missing a using directive or an assembly reference?)
  26. Ja, du musst auch nicht den ganzen Server "neu" entwickeln. Man nimmt beispielsweise einen Tomcat-Server (ist derzeit recht verbreitet), dieser l├Ąuft sowohl auf Windows als auch auf Linux problemlos. Im n├Ąchsten Schritt entwickelt man daf├╝r beispielsweise ein Servlet (in Java) welches die Kommunikation mit den Clients implementiert. Das fertig programmierte Servlet wird dann auf den bereits laufenden Tomcat unter Linux deployed. W├Ąhrend der Entwicklung l├Ąsst man den Server dann lokal unter Windows laufen. Ein Servlet ist zumindest f├╝r kleinere Games v├Âllig ausreichend, aber selbst gr├Â├čere Games k├Ânnte ich mir damit gut vorstellen, wenn man entsprechend die Skalierbarkeit mit einplant. Die Verwendung eines Tomcat hat auch den Vorteil das einige "sicherheitsrelevante" Mechanismen bereits implementiert sind und man sich darum nicht mehr im Detail k├╝mmern muss. Zudem kann man in der Entwicklung ein "Hot-Deploy" einrichten wobei der Server nicht neu gestartet werden muss, wenn man ├änderungen am Servlet deployen m├Âchte.
  27. Hi, Danke f├╝r die Antwort. Wenns m├Âglich ist, w├╝rde ich gerne nen Linux Server verwenden, da er einfach billiger ist. Kann ich denn mit Java lokal auf Windows entwickeln und dann das Programm auf dem Linux-Server laufen lassen? Meine Java-Zeit ist leider schon ein paar Jahre her, und da waren es auch nur Android Apps Gru├č
  28. Ich kann dir nur berichten, dass es mit Java kein Problem darstellt. Mit C# unter Linux habe ich keine Erfahrung, lese aber gerade Mono und .Net Core wird unter Linux unterst├╝tzt. Nach meiner Erfahrung l├Ąsst man C# dann aber eher auf Windows-Servern laufen und die meisten Cloud-Anbieter bieten beide Servertypen an. Da jetzt Java und C# sich doch ziemlich ├Ąhnlich sind w├╝rde ich in deinem Fall dann eher in Java entwickeln.
  1. Load more activity

Announcements

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

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...