Jump to content
Unity Insider Forum

AgentCodeMonk

Members
  • Gesamte Inhalte

    1.106
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    63

Alle erstellten Inhalte von AgentCodeMonk

  1. Ach, weil´s gerade Spazz macht: Das Teil ist noch nicht ganz fertig, kann aber hübsch Items (aus einem großen Pool an vielen Dingen) randomisieren und mit dem PlayerLevel skalieren. Ein bisschen so wie beim Diabolischen von Schneesturm - um mal in Chiffren zu sprechen. ...
  2. ...er lebt noch... und hier mal ein Lebenszeichen:
  3. ...oh sh*t, ich gucke hier mal rein, sehe die Überschrift und denke: das kommt mir doch bekannt vor... oooohhhhhh.... was habe ich da verbrochen 😄 Ja, krumm beschreibt es ganz gut. Code smell incoming! Das kann ja kein Mensch mehr lesen... ich verweise hier mal auf das Jahr: 2012... ...und neeeee... der "Resources"-Ordner für mich bei solchen Sachen so ziemlich gestorben. ...kann mal jemand den Kram als depracted marken? Die Abilities als SO´s würde ich jederzeit wieder machen, aber nicht im Resources-Ordner -> AssetBundles sind da mittlerweile eher meine Wahl...
  4. Ich überlege ein Tutorial zum Thema automatisierte build Prozesse mit unity + jenkins zu schreiben. Gibt es generell Interesse?

    1. Ismoh

      Ismoh

      Klingt schon mal spannend. Was genau hast du geplant? Inwiefern willst du das Build via Jenkins prüfen? Mir fehlt da gerade noch die Vorstellungskraft..

    2. AgentCodeMonk

      AgentCodeMonk

      Es geht im allgemeinen und das builden via Jenkins. Wie setzt man das auf, was ist zu beachten, wie sehen die Editor scripts aus. Irgendwelches Unit Testing mal völlig außen vor gelassen.

    3. Sid Burn

      Sid Burn

      Ich würde es mir durchlesen. Auch wenn ich derzeit keine pläne hätte CI mit Unity zu machen. Interessant halte ich das Thema aber.

  5. Das ist eine Leiche und muss ausgetauscht werden. GameSettings.Instance verweist einfach auf den Ort, an dem du das machst: public class GameSettings : ScriptableObject { public VersionControl VersionControl = new VersionControl(); } ergo müsstest du etwa sowas machen: public class GameSettings : ScriptableObject { private static GameSettings _instance; public static GameSettings Instance{ get{ if(_instance) return _instance; instance = Resources.Load<GameSettings >("PATH_TO_SCRIPTABLE"); return _instance; } public VersionControl VersionControl = new VersionControl(); }
  6. das Prinzip ist identisch, ja. Ein Stück weiter entwickelt.
  7. Japp, so ist es. Tritt der Fehler noch auf? Ansonsten habe ich hier noch eine Version: http://www.3dan.de/build-numbers/
  8. *Update Das Script geht jetzt durch alle Directories im Assets Dir
  9. jur inglisch sounds rili dschörmän end ei kennt stop lafing oal se teim execute me... äh...eksqius mi...no, ei min eim sorry batt se gaim starts to luk gud... ei still dount leik se wey its kreätet, batt it luks gud. häf fann!
  10. Hier mal ein kleines Script, dass das ewig-nervige Rumgeklicke durch die Projektordner zu den Szenen ein wenig abkürzen soll. Zumindest mich nervt sowas ziemlich Es lohnt sich vorallem, wenn man Unity schön über 2 Monitore fahren kann und Platz für ein paar extra Fenster hat. Ihr könnt einfach "ScenesFolder" anpassen und dort den Pfad zu euren Szenen angeben. Der Ordner sollte NUR Szenen beinhalten (macht Sinn bei einem Ordner für Szenen ) Unter "Window" findet ihr dann einen Menüpunkt namens "ShowScenes" - hiermit öffnet ihr das Fenster. Natürlich gehört das Script in einen Editor-Ordner. Wie immer ist das ein Snippet und lässt sich locker verbessern, erweitern etc pp. Sieht so aus: Script: using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor; using UnityEngine; public struct SceneInfo { public string SceneName; public string ScenePath; } public class SceneListWindow : EditorWindow { [MenuItem("Window/ShowScenes")] public static void Init() { // Get existing open window or if none, make a new one: SceneListWindow window = (SceneListWindow)GetWindow(typeof(SceneListWindow)); SearchForScenes(); } private Vector2 _scrollPosition; private static readonly string RootFolder = "Assets"; private static readonly List<SceneInfo> Scenes = new List<SceneInfo>(); private void OnGUI() { if (GUILayout.Button("reload")) { SearchForScenes(); } GUILayout.Space(10); _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, GUILayout.Height(position.height - 40)); foreach (var scene in Scenes.Where(scene => GUILayout.Button(scene.SceneName))) { EditorApplication.OpenScene(scene.ScenePath); } GUILayout.EndScrollView(); } public static void SearchForScenes() { Scenes.Clear(); ProcessDirectory(RootFolder); } public static void ProcessDirectory(string targetDirectory) { // Process the list of files found in the directory. string[] fileEntries = Directory.GetFiles(targetDirectory); foreach (string fileName in fileEntries) ProcessFile(fileName); // Recurse into subdirectories of this directory. string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory); foreach (string subdirectory in subdirectoryEntries) ProcessDirectory(subdirectory); } // Insert logic for processing found files here. public static void ProcessFile(string fileName) { if (!fileName.Contains(".unity") || fileName.Contains(".meta")) return; var name = fileName.Substring(fileName.LastIndexOf('\\') + 1); name = name.Substring(0, name.Length - 6); var sceneInfo = new SceneInfo { SceneName = name, ScenePath = fileName }; Scenes.Add(sceneInfo); } }
  11. Damit ists offiziell: gerade den Arbeitsvertrag für einen neuen Job unterzeichnet :) Und das an einem so schönen sonnigen Tag :) Besser geht´s nicht!

    1. Vorherige Kommentare anzeigen  %s mehr
    2. Ismoh

      Ismoh

      Glückwunsch :)

    3. MadLion

      MadLion

      Glückwunsch! Viel Erfolg und natürlich Spass bei der neuen Arbeit. :)

    4. AgentCodeMonk
  12. Genau das meinte ich. Fällt mir gerade auf, dass ich das hätte genauer schreiben können
  13. Es wird Zeit, dass das Syntax Highlighting wieder Einzug ins Forum hält... Interessanter Ansatz! Werde ich mir nochmal genau durchlesen. Ohne Syntax Highlighting... ist das nicht so cool Da ich an ähnlichem werkel, ist das Thema sehr spanned für mich. Trotzdem habe ich mich für ein eher starreres System entschieden und nutze enums. Auch dort gibt es nur ein paar Stellen, an denen man Hand anlegen muss, wenn man es in einem anderen Projekt mit anderen Stats nutzen will.
  14. Willkommen! Und einen Extragruß unter Saiten-Quälern
  15. Der Stil gefällt. Sind die Grafiken selbstgemacht?
  16. Willkommen an Bord! Schnallen Sie sich an, lehnen Sie sich zurück und genießen Sie den Flug!
  17. Jein - es ist verändert in neuer Form aufgelegt... da ich jetzt eine neue Stelle angenommen habe, wird es nun zum Hobby-Projekt degradiert... schlafen muss ich ja auch mal
  18. Mach doch ne Extension drauß Material _someMaterial; // a material public static class MaterialX{ public static void SetMaterialRenderingMode(this Material pMaterial, BlendMode pBlendMode) { //... } } // usage _someMaterial.SetMaterialRenderingMode(MaterialHelper.BlendMode.Fade);
  19. Was für ein unfaßbar bescheidenes Wetter... und dabei wäre ich gerne Weile mit dem Longboard raus... die letzten Züge des Sommers genießen. Kann mal jemand dem Wettergott ne Ziege opfern?

    1. Vorherige Kommentare anzeigen  %s mehr
    2. AgentCodeMonk

      AgentCodeMonk

      :D ...typisch deutsch... das wäre zu heiß/zu kalt... typisch "Ich will nach draußen"-Typ triffts besser ;)
    3. devandart

      devandart

      Hält dich doch keiner ab! :D

    4. Ismoh

      Ismoh

      Klingt seltsam, aber ich mag Regen. Wenn die Regentropfen an die Fensterscheibe prasseln, fühl ich wohl :D

      Man könnte auch mit nem super chicen Regencape durch die gegen düsen... naja vlt auch nicht.

  20. Der Moment der Erkenntnis: maaaaan, das kann man doch als Extension umsetzen! Kopf->Tisch...

  21. Gemeint war das nicht direkt, aber nunja - wäre doch keine schlechte Option
  22. Na mal so als grobe Idee: du könnest ein EditorScript schreiben, dass (wenn aktiviert) die Klicks auf dem Terrain als Coords zurückgibt. Damit wäre die erste einfache Möglichkeit gegeben Objekte zu setzen. zB. in einem Radius X an der Klickposition. Auch dieser Radius könnte gescannt werden, ob es innerhalb des Radius möglich ist verschiedene Objekte (anhand von verschiedenen Bedingungen) zu setzen... um dann das ganze zumindest (grob) konzeptionell abzurunden speicherst du die Position, Rotation und Skalierung Objekte (auch hier kann man erstmal definieren was für Objekte gespeichert werden sollen... brauchen die irgendwelche States etc pp?) in einer einfach und schnell zu serialsierenden Klasse um sie anschließend als (Teil des) LevelSetup zu speichern... dann kannst du dir direkt einen kleinen einfachen Generator bauen, der anhand dieser Daten deine Objekte instanziert und an die richtige Position etc pp setzt. ...und von dort aus kann man dann aufbauen. Wenn das klappt, dann kann du das als Basis nutzen um wirklich RandomLevel zu erstellen, die Bedingungen zur Platzierung der Objekte sind ja bereits da. Wie das alles im Einzelnen aussehen kann ist erstmal X. Aber so etwa könnte das Grundkonzept deines LevelGenerators/Editors sein um damit arbeiten zu können UND auch um den Generator für sich arbeiten zu lassen.
  23. Hab ihr da einen LevelGenerator? Da wirds dann spannend, Bäume, Häuser und Steine nicht ineinander zu setzen ...oder mit Tiles zu arbeiten (das muss nicht zwangsweise sofort sichbar sein)
×
×
  • Neu erstellen...