Jump to content
Unity Insider Forum

AgentCodeMonkey

Members
  • Content Count

    1,103
  • Joined

  • Last visited

  • Days Won

    62

AgentCodeMonkey last won the day on August 23 2015

AgentCodeMonkey had the most liked content!

Community Reputation

378 Excellent

About AgentCodeMonkey

  • Rank
    Federal Bureau of Gamification

Contact Methods

  • AIM
    nein
  • MSN
    nein
  • Website URL
    http://www.3dan.de
  • ICQ
    nein
  • Yahoo
    nein
  • Jabber
    nein
  • Skype
    ja - auf anfrage

Profile Information

  • Gender
    Male
  • Interests
    http://www.3dan.de
    http://www.youtube.com/fatdreads
    https://www.assetstore.unity3d.com/#/publisher/1591

    E-Gitarre, Bass, Ukulele


    Projekte im Forum:

    http://forum.unity-community.de/topic/4429-soulbound-multiplayer-rpg-screens-co/

    http://forum.unity-community.de/topic/5806-al-ein-3d-jump-and-run/

    http://forum.unity-community.de/topic/3776-heliosheath-3rd-person-space-shooter/

    http://forum.unity-community.de/topic/3782-drone-the-junkyard-league/

    http://forum.unity-community.de/topic/4119-spacemoron/

Recent Profile Visitors

7,784 profile views
  1. 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. AgentCodeMonkey

      AgentCodeMonkey

      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.

  2. 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(); }
  3. das Prinzip ist identisch, ja. Ein Stück weiter entwickelt.
  4. Japp, so ist es. Tritt der Fehler noch auf? Ansonsten habe ich hier noch eine Version: http://www.3dan.de/build-numbers/
  5. *Update Das Script geht jetzt durch alle Directories im Assets Dir
  6. 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!
  7. Hmmm, warum ist held1Preis dann ein float oÄ. ? Warum, willst du den Preis quasi "verfälschen"? Warum nicht gleich mit Integers arbeiten?
  8. http://docs.unity3d.com/ScriptReference/AssetDatabase.ExportPackage.html
  9. Kannst du das genauer aufschreiben? Dein Ausdruck lässt ein wenig zu wünschen übrig
  10. Easy...hier gibts einige Leute mit Skillz Da zieh ich auch hin und wieder meinen Hut! ..viel zu lernen wir haben, junger Padawan und niemals aufhören zu lernen wir werden...
  11. Ich würde die so ranhängen...aber eigentlich ist es egal, du willst an denen ja nichts modifizieren, eher auch mal zur Laufzeit laden...
  12. Das Ganze kann man noch weiterspinnen. GameSates können auch so aussehen: public abstract class GameSate : ScriptableObject { public bool IsActive = false; public abstract void OnStart(); public abstract void OnUpdate(); public abstract void OnDisable(); } public class GameStateAB : GameSate{ public override void OnStart(){IsActive = true; Debug.Log("Start GameStateAB");} public override void OnUpdate(){ Debug.Log("Update GameStateAB"); } public override void OnDisable(){Debug.Log("Disable GameStateAB");} } public class GameStateXY : GameSate{ public override void OnStart(){IsActive = true; Debug.Log("Start GameStateXY");} public override void OnUpdate(){ Debug.Log("Update GameStateXY"); } public override void OnDisable(){Debug.Log("Disable GameStateXY");} } public class StateManager : MonoBehaviour{ public GameState CurrentState; public GameSate State1; // <-- GameStateAB public GameSate State2; // <-- GameStateXY IEnumerator Start() { SwitchGameState(State1); yield return new WaitForSeconds(3); SwitchGameState(State2); } public void Update(){ if(CurrentState.IsActive) CurrentState.OnUpdate(); } public void SwitchGameState(GameSate gameState){ if(CurrentState){ CurrentState.IsActive = false; CurrentState.OnDisable(); } CurrentState = gameState; CurrentState.OnStart(); } } Warum mal wieder ScriptableObjects? ...du kannst damit die States an verschiedene Objekte packen Ich seh gerade, ich habe das nur in NotePad++ runtergeschrieben...die kleinen Fehlerchen sind ja schnell zu korrigieren und ich deklariere das aufgrund dieser Tatsache als "PseudoCode"
  13. 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); } }
×
×
  • Create New...