Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

Leaderboard


Popular Content

Showing most liked content since 09/18/2017 in all areas

  1. 3 points
    Hi Leute! am 30.10.2017 ist es endlich soweit. Wenn nicht noch etwas dazwischen kommt, werde ich dann meine Pinball Collection veröffentlichen. Die Collection ist "free to play". Das bedeutet, dass der Tisch "Time To Fight Back" gratis zu spielen ist. Alle anderen Tische, also die die schon fertig sind und die, die noch kommen werden, können als DLC dazu gekauft werden. Die Collection dient also als Basis für alle Flippertische. Die DLC-Tische können aber 2 Minuten lang probe gespielt werden. Ihr müsst somit nicht die "Katze im Sack" kaufen, sondern testet einfach und entscheidet dann. Ich denke das ist fair. Hier ist der Link zum Spiel auf Steam: http://store.steampowered.com/app/729580/Malzbies_Pinball_Collection/ Und hier ist das Teaser-Video zur Collection Wenn ihr Flipper mögt, dann merkt euch den Termin vor. Wenn ihr selber nicht so die Flipperspieler seid, aber jemanden kennt der sowas mag, dann sagt es ihm doch einfach mal. Kostet ja nix!
  2. 3 points
    Guten Abend liebe Insider! Vor einem Jahr habe ich mit meinem Spiel "Borderless" angefangen und möchte nun mein Projekt endlich mal vorstellen. Ich denke mal, dass jetzt der richtige Zeitpunkt ist. Borderless ist mein bisher größtes Projekt, in dem ich mit Abstand am meisten Arbeit und schweiß gesteckt habe. Allerdings befindet sich das Spiel noch in den Kinderschuhen und ich werde bis zur Fertigstellung auch noch einige Zeit brauchen. Doch kommen wir nun zum eigentlichen Spiel: Borderless ist ein Open-World Sandbox Spiel, in welchem der Spieler in eine eigene Welt eintauchen kann. Genauer gesagt ist es ein Aufbauspiel, welches vom Gameplay stark an Minecraft erinnert. Dabei handelt es sich aber NICHT um einen Minecraft-Klon. Der Fokus des Spiels liegt dabei hauptsächlich auf das erbauen und erschaffen von technologischen Dingen. Angefangen mit einem simplen Holzhaus, bis hin zur einer großen Fabrik, einer Bahnstation, einem Flughafen oder was auch immer... der Fantasie sind keine Grenzen gesetzt! Dabei kann der Spieler komplexe Computersysteme selbst erbauen und vernetzen um z.B. ein eigenes Hochregallager zu bauen. Allerdings brauchen große Anlagen auch eine menge Strom! Somit muss man sich ebenso um die Energieversorgung seiner Anlagen kümmern und und und... Ich denke mal, man kann erkennen in welche Richtung sich Borderless entwickeln soll. Auch ein Multiplayer exisiert, um mit Freunden gemeinsam zu spielen. Da ich ein großer Fan von solchen Spielen bin, hat mich die Motivation bei diesem Mammutsprojekt (Ja, für mich als Alleinentwickler ist das in der Tat ein Mammutprojekt) nie verlassen, weswegen ich den Ergeiz habe, das Spiel bis zum Ende durchzuziehen. Das Spiel ist grafisch nicht sehr anspruchsvoll, da ich weder gut um Texturieren geschweige denn im Modellieren bin. Deswegen versuche ich einen eher einfachen aber stimmigen Stil zu folgen und konzentriere mich auf das was ich besser kann, nämlich Scripten. Somit kann ich mich auch besser auf Performance konzentrieren und mein Spiel auch für Spieler zugänglich machen, die eine eher schwache Hardware in ihrem Rechner verbaut haben. Ich habe auf meinem Youtube-Kanal Helishcoffe einige DevLogs zu Borderless hochgeladen, falls sich jemand mein Spiel etwas genau ansehen möchte. In diesem kleinen Walkthrough, sind bisher (fast) alle Funktionen die ich bisjetzt implementiert habe vorhanden: Wölfe etc. existieren auch schon, sind aber noch nicht im Video zu sehen. Da ich nun den Levelgenerator fertig habe wird sich die Entwicklungsgeschwindigkeit meines Spiels vorraussichtlich verschnellern da der Levelgenerator bisher sehr viel Zeit eingenommen hat. Deswegen werde ich in Zukunft öfters mal weitere Devlogs posten. Wer mein Spiel jedoch selbst mal spielen möchte, kann sich den aktuellen build herunterladen https://www.dropbox.com/s/3d6h7q7btaxay4y/Borderless.zip?dl=0 Steuerung: W, A, S, D oder Pfeiltasten: Laufen Leertaste: Springen B: Buildmenu öffnen I: Inventar öffnen T: Chat Linke Maustaste: Dinge aufheben bzw. zerstören Rechte Maustaste: Dinge platzieren Esc: Pause Wer ein bisschen blödsinn machen will, kann ein bisschen mit den Chatcommands rumspielen die ich bisher integriert habe: /give [Id] Man erhält einen Stack von dem Item mit der angegebenen Id. Beispiel: /give 1 für 4x Holz /itemlist Zeigt eine Liste mit allen Items und der dazugehörigen Id an. /settime [ticks] Setzt die Spielzeit auf die angegeben Tickzeit (0 bis 1999). /summon [Id] erschafft ein Entity mit der angegebenen Id. Beispiel /summon 3 um einen Wolf zu erschaffen /debug zeigt den Debugscreen für den Terraingenerator an /seed zeigt den Seed des Terraingenerator an /god aktiviert den Godmode. Man ist unverwundbar und kann sehr schnell laufen. Achtung: man kann ihn zwar wieder mit /god ausschalten, aber die Laufgeschwindigkeit wird dabei nicht zurückgesetzt, weil ich irgendwie nie dazu gekommen bin diesen Bug zu entfernen /thingmanager zeigt sämtliche Informationen /time zeigt die Spielzeit an /realtime zeigt die echte Uhrzeit an /players zeigt die Liste der Spieler /invstat zeigt alle Informationen über das Spielerinventar /entitylist zeigt alle Entitys mit der dazugehörigen Id an /clearinv leert das komplette inventar Achtung: Der Multiplayer ist zwar schon spielbar, allerdings noch nicht ausgibig getestet und es existieren noch ein paar Bugs. Wer trotzdem auch den Multiplayer spielen möchte, der kann das gerne tun. Beim Starten einer Welt mit "Play World" startet man automatisch einen Server. Andere Spieler können nun über "Join World" im Hauptmenü unter angabe der IP-Adresse des Hosts direkt joinen. Allerdings muss der Port 2204 freigeschaltet sein wenn man nicht im LAN spielt (oder man benutzt ein VPN). Wichtig: Wie bereits erwähnt bin ich mit meinem Spiel noch lange von dem entfernt, was ich oben beschrieben. Der Umfang ist noch recht gering im Vergleich zu meinen Plänen, allerdings möchte ich euch schonmal zeigen woran ich zurzeit arbeite und würde mir gerne ein paar Meinungen und Anregungen von euch einholen
  3. 3 points
    Jungejunge! Ich habe hier ja schon über 2 Monate nix mehr gepostet. Na dann wird's aber Zeit! Ich war sehr fleißig und habe den dritten Flipper der Pinball Collection fertig gestellt. Er heisst Garden und das Ziel ist Blumen zu sähen, sie zu gießen und dann auch zu ernten. Aber jedes Mal wenn eine Blume erntebereit ist, wird sie von nem fießen Käfer bewacht. Der Käfer blockiert das Verkaufsziel und wenn man den Käfer nicht rechtzeitig verscheucht, verwelkt die Blume. Aber was schreibe ich da, schaut's euch doch einfach mal an! Und hier ist das Video:
  4. 3 points
    Och komm! Aber wie ich sehe, hast du viel aus dem Projekt gelernt. Schön, dass du deine Erfahrungen mit uns geteilt hast. Was ich aber an deiner Stelle noch machen würde (muss ja nicht sofort sein): Das Projekt "nicht" vergraben, sondern einfach für nen PC oder Mac weiter bearbeiten um noch mehr zu lernen. Z.B. mal eine Joysticksteuerung einbauen (XBox-Controller). Die Grafiken, Animationen, Sounds und Beleuchtung bis zum Anschlag hochdrehen und dabei ganz neue Probleme kennen lernen. Partikel einbauen, das Aussehen des Tauchers vom Spieler einstellbar machen. Und das Ganze speicher- und ladbar zu machen. Denn das Projekt ist so schön klein, dass du in jeden Bereich reinriechen kannst und die grundlegenden Sachen dabei lernst, ohne einen riesen Berg an Fleißarbeit da rein zu stecken. Du wirst sehen, dass diese "Kleinigkeiten" auch ganz schön lange dauern können. Und sowas muss man erfahren haben, damit es beim nächsten Projekt gleich mit einbezogen wird.
  5. 2 points
    Heute hatte ich angefangen ein kleinen Character für das Spiel zu modelieren zwar fehlen noch die Texturen, aber sie gehen jetzt schon ganz schön ab (video...)
  6. 2 points
    Du kannst eine Klasse die von MonoBehaviour erbt nicht serialisieren, aber so sollte es gehen: [Serializable] public class Datenspeicher { public int[] arraySpielPlatzhalterSternTypSPEICHER = new int[60]; public int[] arraySpielPlatzhalterSperrenSPEICHER = new int[60]; } Diese Klasse kannst du allerdings nun nicht mehr an ein GameObjekt hängen, aber du kannst diese Klasse als Datencontainer verwenden. Ebenfalls kannst du diese Klasse als Instanzvariable einer MonoBehaviour-Klasse verwenden. public class Testklasse : MonoBehaviour { { public Datenspeicher meinSpeicher; }
  7. 2 points
    Ich hoffe sehr für dich, dass du das nochmal cached anstatt andauernd in einer Schleife Transform.Find und GetComponentInChildren aufzurufen. Und wieso überhaupt GetComponentInChildren, wenn du sowieso schon mit Transform.Find das richtige GO raussuchst?
  8. 2 points
    Ist zwar noch kein ScreenShot Weekend aber ich werde am Wochenende nichts posten können also schiebe ich das jetzt mal vor, weil ich jetzt auch grade einen "Abschnitt" fertig habe. Hier mal mein Update zu meinem Terraingenerator, der schon recht gute Ergebnisse liefert:
  9. 2 points
    Ich lese da einmal: Metor und einmal Meteor Könnte schon das ganze Problem sein, die Schreibweise.
  10. 2 points
    Vielen Dank euch beiden für euer netten Worte Das eigentlich letztendliche Ziel hinter diesen Projekt war mal was "anderes" zu machen. Da ich bei vielen meiner Vergangen Projekten immer mir anhören musste das ist ein "XY-Clone" ect. und dan wollte ich mir mal was überlegen was "anderes" ist. Deshalb hatte ich auch damals mich dafür entschieden den Boy nach unten fallen zu lassen. Leider ist es net so gut geworden wie ich mir gedacht habe, aber immerhin muss man stets wieder sich aufrichten und weitermachen um neue "coole" Sachen zu lernen. @malzbie Ich verstehe deine Punkte vollkommen und ich stimme dir dabei auch voll und ganz zu das es ein super "lern"-Projekt ist und man dadurch viele System ausprobieren kann und conceptieren. Der Gedanke gefällt mir. @Zer0Cool Ja das könnte auch helfen das ganze umzuwerfen wie du bereits oben mal erwähnt hattest. Doch vermute mal dadurch kommt dan auch schnell wieder der 0815-Spruch "ahh ein XY-Clone" das ist schon verdammt hart jedesmal zu hören als Developer... Mfg. -John
  11. 2 points
    Schade, ich denke die Idee war nicht verkehrt. Ok, das mit der Steuerung ist vielleicht problematisch, aber warum drehst du die ganze Szenerie nicht einfach auf den Kopf, wer sagt, daß Wasser immer unten sein muss, taucht er halt nach oben!? Schau dir mal diesen Anime hier an, ich musste dabei an dein Spiel denken xD https://myanimelist.net/anime/34599/Made_in_Abyss Da könnte man ein schönes Spiel draus machen
  12. 1 point
    Sehr geil! Die Männlein sehen so schon richtig gut aus. So kleine russisch aussehende Männlein würden auch gut aussehen. Schöne Chapka auf den Kopf und ab geht's
  13. 1 point
    Oh, sorry.. hab ich irgendwie grad verpeilt, dass du da schon dran warst ^^
  14. 1 point
    Solange sich dein Startpunkt nicht verändert passiert sichtbar nur ein Hopser. Nur weil du da Time.deltaTime nutzt, bedeutet es noch nicht, dass du eine "Geschwindigkeit" bekommst. Nochmal: MoveTowards ist einzig und allein eine Verschiebung eines Vectors von einem Startpunkt zu einem Zielpunkt. Und das in einem Teilabschnitt, der natürlich auch mit Time.Deltatime multipliziert werden kann. Mehr passiert da in dem Frame nicht. Eine Bewegung über mehrere Frames passiert nur, wenn die Position deines Objektes als Startpunkt genommen wird. Also wenn : Vector3 start=transform.position; // hier nehme ich meine Objekt-Position als Startpunkt transform.position= Vector3.MoveTowards(start,ziel,teilstück); // Das Ergebnis von der Berechnung wird meine Position Dann würde bei jedem Durchlauf start neu gesetzt, weil es ja meine nun veränderte Position ist. Und jetzt sieht es so aus als bewegt sich das Objekt in jedem Frame ein Stück weiter in Richtung B. Wenn du aber: Vector3 start = irgendwas.transform.position; // hier nehme ich irgendeine Position als Startpunkt transform.position= Vector3.MoveTowards(start, ziel,teilstück); // auch hier wird das Ergebnis zu meiner Position Dann wird dein Objekt irgendwo (abhängig vom Teilstück) zwischen Start und Ziel positioniert. Da nun aber Start bei jedem Durchlauf immer der selbe Punkt ist (er ändert sich ja nicht), bleibt dein Objekt genau da stehen. Bei jedem Durchlauf wird natürlich die Berechnung wieder ausgeführt. Sie kommt aber auch immer zum selben Ergebnis. Du siehst, dieser Vector3 Befehl dient ersteinmal nur dazu ein Ergebnis zu liefern. Und zwar einen Punkt im Raum zu ermitteln, der genau auf einer Linie zwischen 2 definierten Punkten liegt. Was du dann mit dem Ergebnis machst, bleibt dir überlassen.
  15. 1 point
    "PulseLight" (einfach aufs PointLight ziehen): using UnityEngine; using System.Collections; public class PulseLight : MonoBehaviour { private const float PULSE_RANGE = 4.0f; private const float PULSE_SPEED = 3.0f; private const float PULSE_MINIMUM = 1.0f; private Light plight; // Use this for initialization void Start () { plight = GetComponent<Light>(); } // Update is called once per frame void Update () { plight.range = PULSE_MINIMUM + Mathf.PingPong(Time.time* PULSE_SPEED, PULSE_RANGE - PULSE_MINIMUM); } }
  16. 1 point
    Sieht schon mal sehr gut aus! Aber wäre es bei einem Voxelspiel nicht besser, den Charakter auch so lustig kubisch zu gestalten? Beispiel Cube World.
  17. 1 point
    Auch wenn es weder vieles noch Spannendes zu sehen gibt, wollt ich doch auch mal zeigen was ich mache. Derzeitig komme ich nur langsam vorran, aber das liegt einfach daran, das ich mich seid einigen Tagen erst durch das geballte Unity durchprügel. Das ist der Hauptcharakter, um den es sich in meinem ersten kleinen spielchen drehen soll - sie lernt gerade, wie man springt.
  18. 1 point
    Du kannst auch hier einfach schreiben: if (arryHexagon[i].GetComponentInChildren<LineRenderer>())
  19. 1 point
    Ich mag's am liebsten, eine spezielle Ladebildschirm-Szene zu haben. Die hat dann das, was @malzbie bereits an UI-Elementen nannte. Dadurch wird die alte Szene schon entladen, wenn es mit der anderen losgeht. Außerdem muss ich dann meinen Ladebildschirm-Kram nicht in allen Szenen bereitstehen haben Aber es ging ja eigentlich um die Ästhetik und um das "überhaupt". In dem Fall würde ich sagen: Nein. Spiele brauchen keine Ladebildschirme um cooler auszusehen. Ich habe es z.B. bei The Journey Down sehr genossen, dass das Spiel selbst und alle Szenen darin prompt da waren. Das mit Absicht kaputt zu machen, weil andere Spiele das auch haben, finde ich nicht besonders weise
  20. 1 point
    Ich vermute man kann das Array nachträglich ändern, da du ja nicht direkt die Arraygröße setzt, sondern die Arraygröße gekapselt über eine Property gesetzt wird und in dieser wird vermutlich das Array umorganisiert (und dabei bleiben dann die alten Elemente erhalten). Was die Ecken betrifft, daß musst du denke ich dann selbst lösen, d.h. die Ecken selbst "berechnen" und als Punkte übergeben.
  21. 1 point
    Ich mache keinen speziellen Ladebildschirm sondern fade einfach eine schwarze UI Ebene ein, damit die momentane Szene nicht sofort schwarz wird, und blende dabei dann einen LoadingText ein. Das kann auch irgendetwas animiertes sein. Hauptsache man sieht, dass die Kiste noch was tut. Ja und der entscheidende Punkt ist, dass ich asynchron lade. https://docs.unity3d.com/ScriptReference/Application.LoadLevelAsync.html Dabei wird die neue Szene zur alten hinzugeladen, was alle Funktionen der Alten noch am Leben erhält, somit auch die UI Elemente. Sobald die neue Szene fertig ist, etlädt Unity selbstständig die alte Szene und die neue ist aktiv. Das kannst du schön im Projektfenster sehen, wenn genug Daten in der neuen Szene sind und somit das Laden auch etwas dauert.
  22. 1 point
    Nach längerer Zeit ein Update: Das UI ist überarbeitet. (wird es auch nochmal...) Ich habe mal wieder festgestellt das es mir schwerfällt mich an einen Ablauf zu halten und habe hier und da Zeit intensive Baustellen dazwischen geschoben. Dazu gehören z.B. ein UMA-Character inkl. Anpassungs-UI. Faszinierend, was man teilweise KOSTENLOS bekommt. Das Ganze diente aber nur der Machbarkeitsstudie. Ich möchte momentan keine großen Fehlerquellen zulassen und bin trotz eigentlich guter Ergebnisse noch mal zum nicht animierten Character gewechselt. https://www.assetstore.unity3d.com/en/#!/content/35611 Immer wieder arbeite ich am Netcode mit dem Ziel einen möglichst deterministischen und reaktiven Character zu erzeugen. Der Gedanke das an diesem Punkt nahezu alle "Multiplayer"-Spiele scheitern, ist immer wieder Motivation Ohne unzählige Artikel im Internet wäre ich aber auch verloren: - https://www.gamasutra.com/blogs/ChristianArellano/20151009/255873/UNET_Unity_5_Networking_Tutorial_Part_2_of_3__Client_Side_Prediction_and_Server_Reconciliation.php - http://www.kinematicsoup.com/news/2017/5/30/multiplayerprediction - http://www.codersblock.org/blog//2012/02/client-side-prediction-in-unity.html - https://forum.unity.com/threads/tips-for-server-authoritative-player-movement.199538/ Ich denke nicht mehr das ich bis Ende 2017 Voxelfarm implementiert habe. (Zeit... zeit... zeit...) Bilder zeigen leider nicht den Hauptteil der Arbeit. Mit freundlichen Grüßen
  23. 1 point
    "direction" ist der Richtungsvektor zwischen diesen beiden Punkten und in diesem Fall auch die Differenz. Dieser wird gebildet aus Zielpunkt - Startpunkt, man kann diesen auch noch zusätzlich "Normalisieren" (weil die Distanz bei einem Richtungsvektor keine Rolle spielt und einige Funktionen ggf. einen normalisierten Vektor benötigen), dann ist es nur noch der Richtungsvektor. Ich vermute aber Unity normalisiert den Richtungsvektor intern sowieso noch einmal, daher habe ich es weggelassen. Der Unterschied betrifft die Performance, CompareTag ist schneller (da es intern schneller ausgewertet werden kann) und damit man es sich "angewöhnt" , habe ich es gleich mit korrigiert.
  24. 1 point
    Probier es mal damit, da waren mehrere Fehler im Code, zum einen übergibt man beim Raycast eine Richtung und keine 2. Koordinate und zum anderen sollte man prüfen, ob der Raycast etwas getroffen hat: // Raycasting für Verbindungsprüfung if (verbindungsueberpruefung == true) { Debug.Log("Neustart!"); Vector3 direction = koordinate2 - koordinate1; // Ist die Verbindung vorhanden ? if (Physics.Raycast(koordinate1, direction, out hit, Vector3.Distance(koordinate1, koordinate2))) { Debug.Log(hit.collider.tag); if (hit.collider.CompareTag("Verbindungsstueck")) { // Doppelte Verbindung, keine Verbindung erlaubt verbindungsueberpruefung = false; } } else { // Keine Verbindung vorhanden, Verbindung erzeugen erlaubt if (Vector3.Distance(koordinate1, koordinate2) < maximalAbstand) { // Es ist keine doppelte Verbindung vorhanden verbindungsueberpruefung = false; VerbindungErzeugen(); } else { verbindungsueberpruefung = false; } } }
  25. 1 point
    In der Regel musst du nichts reinschreiben (zumindest wenn es um den Asset Store geht), also wenn der Publisher nichts dastehen hat, musst du auch nichts hinschreiben.
  26. 1 point
    OK, hab ich gemacht. Das Raycasting mit der Maus funktioniert. Jedoch habe ich seit gut 2 h eine Fehlermeldung bei der mobilen Variante des Raycastings. Bei mir siehts gerade so aus: touch = Input.touches[0]; touchRay = new Ray(); hit = new RaycastHit(); private void Update() { if (mobilePlatform == true) { if (Input.touchCount > 0) { if (Physics.Raycast(Camera.main.ScreenPointToRay(touch.position), out hit)) { if (hit.collider.gameObject.name == "Box_1") { Debug.Log("FUNKTIONIERT"); } } } } else { if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit)) { if (hit.collider.gameObject.name == "Box_1") { Debug.Log("FUNKTIONIERT"); } } } } } Die Fehlermeldung lautet: IndexOutOfRangeException: Array index is out of range. Er bezieht sich bei der Fehlermeldung auf diese Zeile: touch = Input.touches[0]; EDIT: Hat sich geklärt, habe das Touch entfernt und die Physics Zeile umgeschrieben: Physics.Raycast(Camera.main.ScreenPointToRay(Input.GetTouch(0).position), out hit) Frage wäre noch, wo mache ich das Raycasting. Update- oder Fixedupdate- Methode?
  27. 1 point
    Jaa ich richte die Objekte an ein Raster aus und berechne mit Raycasts wie sie platziert werden sodass man Objekte z.B. leicht aneinander stellen kann und sich der Umgebung anpassen Danke für dein Feedback
  28. 1 point
    Schau dir mal die SceneManager Befehle an. Dann siehst du was es alles gibt und wie die einzelnen Befehle funktionieren. Deine Szene wird mit deinem Befehl ganz normal geladen und dabei wird die alte Szene entladen. https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html
  29. 1 point
    Ach du dickes Ei. Wie immer die Grundregel: Wenn du mehr als zwei Variablen hast, die bis auf die Nummer am Ende gleich heißen, hast du was falsch gemacht. Mach aus Typ buttonSpielPlatzhalter1; Typ buttonSpielPlatzhalter2; Typ buttonSpielPlatzhalter3; bitte Typ[] buttonSpielPlatzhalters;
  30. 1 point
    Gefällt mir sehr gut! Da steckt einiges an Arbeit drin! Mal eine Frage, wie machst du das mit dem Platzieren der Objekte. Nutzt du da eine Art Raster?
  31. 1 point
    Gestern offiziell 1. Tag als Informatikstudent hinter mir gehabt. Habs überlebt
  32. 1 point
    Noch als Ergänzung: Quaternion.identity steht für den Vektor (x,y,z,w) = (0,0,0,1) X Der X-Wert der Vektorkomponente der Quaternion. Y Der Y-Wert der Vektorkomponente der Quaternion. Z Der Z-Wert der Vektorkomponente der Quaternion. W Die Rotationskomponente der Quaternion. Und da dieser Vektor eben immer wieder einmal benötigt wird (um beispielsweise "keine Rotation vorhanden" auszudrücken), wurde dieser eben der statischen Variable "identity" der Klasse Quaternion (bzw. Struct) zugewiesen. Mit this.transform.rotation = Quaternion.identity; drückst du nun also aus, mein Transform soll nicht rotiert sein. Häufig verwendet man es, nachdem man GameObjekte instanziiert hat oder wenn man Rotationen zurücksetzen möchte: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html https://docs.unity3d.com/ScriptReference/Transform-rotation.html
  33. 1 point
    Ja gut das stimmt hatte jetzt nur Multiplikation gerechnet Wenn man so will wäre es bei der Addition dann Vector3.zero
  34. 1 point
    Das kann man ja so nicht sagen. Wenn du ein Objekt um (1,1,1) verschiebst ist es woanders. Obwohl man, wenn man um (1,1,1) skaliert, dieselbe Größe wie vorher hat. Da es keinen "Einheitsvektor" ohne Angabe der Verwendung gibt, hab ich das Beispiel mal weggelassen Wie @Helishcoffe schon sagte, es geht um alle Achsen. Mal anders ausgedrückt: Quaternion.identity ist, wenn du in der Transform-Komponente des Objekts bei der Rotation 0, 0 und 0 stehen hast.
  35. 1 point
    Quaternion.identity ist die Standard-Ausrichtung, also die Ausrichtung, bei der das Objekt nicht gedreht ist. Ist so etwa das Äquivalent für Drehungen zu 0 für Entfernungen.
  36. 1 point
    Sieht schon sehr gut aus. Ein paar Anregungen von mir Die Bäume poppen zu stark in das Sichtfeld des Spielers. Hier könntest du ggf. mit LODs arbeiten oder einem System welches die Bäume "einfaded", oder du legst generell Nebel über die gesamte Szenerie über einen Kameraeffekt (damit versteckst du weit entfernte Geometrie, ist aber von der Performance nicht so günstig). Scheinbar poppt auch Geländegeometrie ins Sichtfeld, hier bin ich mir aber nicht sicher, woran das liegt. Blendest du Geometrie zu Laufzeit ein? Vielleicht blendest du hier die Geometrie zu spät ein? Was mir auch auffällt ist ein "schwarzer Rand" an der Geländegrenze, ist der beabsichtigt? Vielleicht gibt es hier noch ein MipMapping-, UV-, Normal- oder ein Bleeding-Problem? Der schwarze Rand verschwindet scheinbar, wenn man näher kommt.
  37. 1 point
    Ist doch cool! Mehr feedback kann ich nicht geben.
  38. 1 point
    Sagenhaft, wie schnell sich diese riesige Welt bei dir aufbaut. Wenn du jetzt noch die Terassen weg kriegst und alles schön smooth ist... Ne, ist schon super so!
  39. 1 point
    Hallo, ich möchte hier mal mein Projekt vorstellen. Es handelt sich dabei um ein RPG-Spiel mit dem Arbeitstitel „Der Turm der Gezeiten“. Evtl. kommt euch das bekannt vor, da ich daran bereits schon längere Zeit arbeite. Vorab möchte ich noch hinweisen, dass ich das ausschließlich als Hobby betreibe. Mich interessiert es einfach so etwas zu erstellen und nehme damit so einiges Wissen in mein Arbeitsleben mit. Den Start habe ich mit dem 3d-Gamestudio hingelegt. Allerdings ist das bereits schon seit mehreren Jahren nicht mehr upgedatet worden. Daher hatte ich mir dann eine neue Engine gesucht und bin beim GameGuru gelandet. Hier hat mir nicht gefallen, dass es sich doch mehr oder weniger um eine Engine handelt die noch lange nicht fertig ist und ständig neue Baustellen behebt. Ein kontinuierliches Arbeiten war hier kaum möglich, da ständig neue Updates eingespielt wurden die das aktuelle Projekt immer angepasst werden musste. In meinem Forum zum Gamestudio hatte mich dann ein User darauf hingewiesen dass ich doch auf Unity umsteigen könnte. Somit habe ich vor etwa 4 Wochen den Umstieg gewagt und muss mal sehen wie ich dann insgesamt mit Unity klarkomme. Insbesondere ist mir in vielen Bereichen die Funktionsweise von Unity unklar und habe sehr schnell gemerkt wie umfangreich und komplex der Editor ist. Vom Scripten mal ganz abgesehen. Ich denke aber da kann ich mich bestimmt (ich hoffe bei Fragen natürlich auch auf eure Hilfe) einarbeiten. Jetzt zum Spielprojekt: Das Spielprinzip ist ein klassisches RPG. Story: Der Spieler wird in die Welt geworfen und muss sich somit in die Story und das Spielgeschehen einleben. Der Turm der Gezeiten ist für das Gleichgewicht zwischen Gut und Böse verantwortlich und besitzt werde Runen. Diese Runen sind abhandengekommen und somit droht das Gleichgewicht aus den Balance zu geraten………….. Meine erste Location ist wie mit den anderen Gameengines auch die Stadt Goldstein. Hier habe ich schon mal angefangen die Stadt grob zu erstellen. Es fehlen natürlich noch die ganzen Details und auch die begehbaren Gebäude sind noch komplett leer. Aber hier schon mal ein paar Bilder:
  40. 1 point
    Ja, der @Kojotehat Recht und das ist das, was der @Sascha immer mit den Strings meint, wenn er sagt, dass nach Namen oder Tags suchen immer doof ist. Dummerweise gibt es da keine großartige Rückmeldung vom System, denn es ist ja kein Fehler, wenn etwas nicht so wie der Name nach dem man sucht heißt.
  41. 1 point
    Hallo, habe etwas an meiner Stadtlocation weitergearbeitet. Der Hafen ist jetzt angelegt und der dem Spiel gebende Turm ist auch schon fertig.
  42. 1 point
    Danke euch beiden. @Zer0Cool Da die Tische ja theoretisch in den 90ern dagewesen sein könnten, muss ich mich auch konsequent dran halten, damit das ganze stimmig ist. Es macht ja keinen Sinn, monochrome Displays in geringer Auflösung zu haben, aber dann umherlaufende Käfer zu nutzen. Echtzeitreflektionen sind normalerweise da. Siehe Bild. Ich musste sie aber für die Aufnahme deaktivieren, weil sie rund 50 FPS auf meiner Grafikkarte klauen und ich dann nicht mehr Spielen und aufnehmen kann, ohne dass es in der Aufnahme Ruckler gibt. Aber an sich, ist dieser Tisch, außer bei metallischen Objekten, eher matt-glänzend. Das ist aber auch so gewollt.
  43. 1 point
    Erstmal ein paar Tipps: Du kannst deinen Code besser formatieren wenn du den CodeTag nutzt (Dieses zeichen: <>) Anstatt dir für alles boolean Variablen anzulegen kannst du auch sowas hier machen: void Update() { // Wurde eine Pfeiltaste gedrückt? if(Input.GetKey(KeyCode.LeftArrow)|| Input.GetKey(KeyCode.RightArrow)) { // Berechne den timeCounter float timeCounter = Time.deltaTime * speed; // Wenn die linke Pfeiltaste gedrückt wurde, invertiere den timeCounter if(Input.GetKey(KeyCode.LeftArrow) timeCounter = timeCounter * -1; // Hier kommt nurnoch dein Rotationscode etc } } Aber anstatt die Rotation selber zu berechnen, nutz doch einfach Unity. Vielleicht hast du es schon bemerkt aber du kannst in Unity Objekten Kinder zuordnen. Wenn nun das Parentobjekt rotiert wird, rotieren sich die Kinder relativ zum Mittelpunkt vom Parent. Das heißt: Wenn du ein leeres Objekt anlegst und dann deinen Balken als Kind zu dem leeren Objekt zuordnest kannst du deinen Balken drehen lassen indem du einfach das leere Objekt rotierst. Oder vielleicht noch anders ausgedrückt, in deine Skizze der Mittelpunkt ist das leere Objekt das einfach rotiert wird. Ich bin mir nicht ganz sicher wie du nun dein 2tes Problem löst aber ein Ansatz sollte folgendes sein: Du kennst die Rotation vom Parentobjekt. Versuch einfach mal deinen Balken um den exakt gleichen Wert zu rotieren. Evtl. kommt dabei bereits das gewünschte Ergebniss raus. Ansonsten musst du halt nur schauen um wieviel die Rotation falsch ist und das dann einfach ausgleichen.
  44. 1 point
    Ich würde jeweils zu Beginn alle Zahlen mit ihrer normalen Farbe einfärben und dann erst alle doppelten mit rot markieren. So werden bei jedem "Durchlauf" die Doppelten auch wieder zurückgesetzt. Wenn sich das Array "zahlenArray" verändert, so musst du den unten stehenden Code natürlich nochmals durchlaufen. Array.Copy(zahlenArray, loesungZahlenArray, zahlenArray.Length); // Erst einmal alles in schwarz einfärben (Default) for (int i = 0; i < zahlenArray.Length - 1; i++) { zahlenTextArray[i].color = new Color32(0, 0, 0, 255); } // Nun alle doppelten Zahlen in rot einfärben int doppelteInZahlen = 0; for (int i = 0; i < zahlenArray.Length - 1; i++) { for (int j = i + 1; j < loesungZahlenArray.Length; j++) { if (zahlenArray[i] == loesungZahlenArray[j]) { doppelteInZahlen++; if (hauptsteuerung.einstellungZahlHilfe == 1) { if (zahlenSperre[i] == false) { zahlenTextArray[i].color = new Color32(232, 0, 0, 255); } if (zahlenSperre[j] == false) { zahlenTextArray[j].color = new Color32(232, 0, 0, 255); } } } } }
  45. 1 point
    Wieso es gefailt ist? Concept-phase Realität vs Plan Mobile Screen Concept-Phase Die Concept-Phase war ein wichtiger Bestandteil den ich in meine Projekte rein integriert habe. In dieser Phase geht es rein um das Concept von Ideen, doch was ich diesmal nicht gemacht hatte war das ganze Protypen. Ich habe wieder gemerkt Prototypen ist ein wichtiger Bestandteil von der Planung bzw. Concept-Phase. Das einzige was mich davon abschreckt meistens ist das Projekt sehr lange in der Protype-Phase verweilen und somit langsam vor sich hin rostet oder schnell den Focus verliert. #Tipp: Eine Protype-Phase ist ein wichtiger Bestandteil der Planung, hierdurch wird man schon mit Problemen Konfrontiert auf die man eine Lösung planen bzw. um planen kann. Problematisch ist aber bei der ganzen Sache, dass man schnell in der Protype-Phase verweilt und nicht mehr dort herauskommt. Hier ist wichtig den richtigen "cut" zu setzten, man sollte sie nicht auslassen da oftmals die Idee im Kopf klasse klingt aber in der Umsetzung sich nicht richtig anfühlt. Realität vs. Plan Wie bereits oben gesprochen ein Testbare Demo ist nicht schlecht um auf Fehler aufmerksam zu werden die man nicht bedenkt. In meinem Projekt sind wichtige Punkte folgende gewesen die ich nicht bedacht hatte: - Doodle Jump Steuerung eignet sich nicht besonders gut um rein Objekten auszuweichen. - Das Fallen runter ist nicht geeignet wen man eine Swipe Steuerung hat, dadurch bedeckt man den Focus-Bereich des Spieles. #Tipp: Sich weitere Gedanken um die Benutzbarkeit und den Flow des Spieles/Steuerung zu machen. Nicht mit dem Entschluss leben, das wäre schon "geil" und blind drauflosarbeiten. Mobile Screen Ein wichtiger Punkt den ich bei diesem Projekt gelernt habe ist der das man sich verdammt gute Gedanken machen muss über die Screen Fläche vom Game. - Wie wird der Screen durch Steuerung beeinfluss? - Verdeckt etwas ein Wichtigen Bereich mein Screen? - Wo liegt mein Focus Bereich des Spieles? #Tipp: Sich diese Gedanken bei der Planung durch den Kopf gehen zu lassen ist ein riesen Vorteil. Den ich leider hart lernen musste Ich hoffe ihr konntet ein paar Denkanstöße aufnehmen und hoffe nicht das ihr in das gleiche Schlamassel läuft wie ich. Es war ein witziges Projekt im Endeffekt habe ich einiges daraus gelernt, so ich gehe net so demotiviert aus der ganze Sache. Mfg. -John
  46. 1 point
    so ich teste ein paar fallen im Jail Level
  47. 1 point
    Ich lehne mich hier weit aus dem Fenster, da ich sowas noch nie gemacht habe. Aber kannst du nicht einfach ne Animation für die Deckkraft erstellen und die dann immer beim Ein/Ausblenden abspielen? Bzw. 2 Animation - eine fürs ein und eine fürs ausblenden. Oder halt die Animation einmal vorwärts und einmal rückwärts abspielen. Evtl. hilft das hier weiter: http://answers.unity3d.com/questions/780323/unity-ui-fading-canvaspanel.html In dem link oben wird dieser hier noch verlinkt: http://answers.unity3d.com/questions/864581/ui-canvasrenderer-setalpha-does-not-set-alpha-of-c.html?childToView=864600#answer-864600 Der 2 Link scheint wirklich das komplette Canvas auszufaden.
  48. 1 point
    >> ist das eine deutliche Komplexitätssteigerung oder in einer rudimentären Ausbaustufe noch einfach umsetzbar? Das Erstere. Multiplayer wird gern unterschätzt und dann landen auch gute Ideen oftmals im Papierkorb. Aber Unity hat sich diesbezüglich mittlerweile auch deutlich verbessert. Und ich hab dir mal was rausgesucht, das dir einen kleinen Einblick darüber verschaffen kann. Ich weiß nicht, wie gut es ist, weil wir sowas selbst schreiben, aber zum "MalReinGucken" wird es wohl taugen.
  49. 1 point
    Und ich bastele gerade weiter an einem Schwertnahkampf mit Schild in einer Testszene. Der Ritter hat sich gerade einen Treffer eingefangen.
  50. 1 point
    In anderen Engines ist es eine komplizierte Sache, wenn man dem Spieler die Möglichkeit geben will, mit der Maus in die 3D-Welt hineinzuklicken. Man muss die zweidimensionale Mausposition benutzen, um über Aspect Ratio der Kamera und Auflösung des Spiels eine dreidimensionale Position zu ermitteln und dabei schauen, auf welches Objekt der "Strahl" (Ray), der mit diesen Informationen berechnet wird, fällt. Unity macht diesen Vorgang sehr einfach, aber bietet zusätzlich noch eine ganz einfache Alternative an. Erstelle folgendes Skript:function OnMouseDown() { print("Du hast auf das Objekt geklickt."); } Weise das Skript einem Objekt zu, das einen Collider hat Starte das Spiel Klicke auf das Objekt In der Konsole (und damit unten links im Editor) erscheint der Geklickt-Satz. Ersetze den print()-Befehl durch beliebigen Code Fertig! Neben OnMouseDown() (Spieler hat geklickt) gibt es noch ähnliche Funktionen: OnMouseEnter() (Spieler hat angefangen, das Objekt mit dem Zeiger zu berühren) OnMouseExit() (Spieler hat aufgehört, das Objekt mit dem Zeiger zu berühren) OnMouseOver() (Spieler berührt jetzt in diesem Frame das Objekt mit dem Mauszeiger) Viel Spaß mit Picking!
×