Jump to content
Unity Insider Forum

Bradley

Members
  • Content Count

    81
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Bradley

  1. Das kann ich allerdings wiederlegen denn innerhalb meiner Tests deklariere ich das ausschließlich als Member von Methoden.
  2. Technisch kann ich bei Unity in einem Unittest ein leeres GameObject ja sehr einfach erzeugen: GameObject gO = new GameObject(); Jetzt bringt mir Unity allerdings auch die Warnung: Ich stehe jetzt tatsächlich auf den Schlauch wie ich ein leeres GameObject erstellen soll.
  3. Ich habe mal ein kleines Package als Beta geschnürt. Um das Tool im aktuellen Beta zustand nutzen zu können müsst ihr euch erstmal einen Query aussuchen die Ihr abfragen wollt. Der URL Pfad sieht dann z.B. so aus: https://bradleylabs.visualstudio.com/Space Opera Unity/_queries/query/0a19f9f0-0e5f-4486-948c-9bd525c89f38/ Die Daten wären dann: Organisation: BradleyLabs Project: Space%20Opera%20Unity Die QueryID ist der lange Zahlencode nach query/... PAT: Ohne Pat leider keine Anmeldung. Wie man aber daran kommt, hat Microsoft schon geschrieben: https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page Edit: gerade ein Fehler im package bemerkt EDIT: So fehler ist behoben. UnityCallsAzure.unitypackage
  4. Naja die wichtigsten Sachen sind ja drin. Muss meinen Code noch etwas bereinigen und Dan. Denke ich, werde ich eine beta davon in den asset store stellen. Edit mal Icons für die Tickets ergänzt.
  5. Wieder ein kleiner Fortschritt beim Anlegen der Tickets. DAs Linke ist die Basis eines Bugs, das Rechte eine UserStory. Ich denke, ich werde da noch etwas mit Farbe oder Symbolen arbeiten damit Sie auf den Erstem Blick unterscheidbar sind. Ausserdem bekomme ich von Azure Devops tatsächlich HTML texte zurück für die Felder was mich dann doch etwas überrascht hat. Die Hauptmaske wurde jetzt in so weit erweitert, dass die Tickets nur einmal geöffnet werden bzw. beim nochmaligen öffnen einfach wieder in den Focus gesetzt werden.
  6. Die notwendigen Daten wie Organisation, Projekt, Query ID und PAT lassen sich jetzt funktional eingeben und auch speichern. Bisher ist es so gelöst das alle 4 Felder als XML (De)Serialisiert werden. Die Entsprechende XML liegt als File im Ordner von des PlugIns. Im Moment ist der Pfad noch Hardcodiert also Application.dataPath + "/UnityCallsAzure/config.xml" das funktioniert exakt so lange wie das nicht verschoben wird. Das PAT im Klartext zu speichern macht mir tatsächlich ein wenig Bauschmerzen. Als nächstes gehts mal an die Detailansicht der Workitems ran.
  7. Aus einer Idee heraus, entsteht gerade ein kleines PlugIn das es mir ermöglicht die Workitems eines Query direkt via REST API von Azure Devops abzufragen. Das Ganze ist noch so was wie eine Machbarkeitsstudie. Immerhin funktioniert das Abfragen einer Query und das Anzeigen der verschiedenen Tickekts innerhalb von Unity bereits. Ich möchte diesen kleinen Prototyp soweit ausbauen das man sich eine beliebige Work Item Query abfragen kann, die Items in der Listenform angezeigt werden und weitere Informationen wie Description, Comments etc. als zusätzliches Fenster geöffnet werden können. Wenn das soweit steht ist der nächste Schritt, Änderungen an den Tickets wieder auf den Azure Devops Server zurück zu spielen.
  8. Erstmal danke an dich Sascha. Ich bin jetzt mal ein Schritt weiter gekommen: public class ToolTipWindow_Test : MonoBehaviour { private GameObject toolTip; [SetUp] public void Setup() { toolTip = new GameObject("Panel_ToolTip"); toolTip.gameObject.AddComponent<ToolTipText>(); //toolTip.GetComponent<ToolTipText>().Start(); toolTip.GetComponent<ToolTipText>().toolTipText = gameObject.AddComponent<Text>(); toolTip.GetComponent<ToolTipText>().toolTipPanel = new GameObject("Panel"); } [Test] public void CheckTextInTooltip_False() { bool result = false; result = toolTip.GetComponent<ToolTipText>().ToolTipTextInputCheck(""); Assert.IsFalse(result); } [Test] public void CheckTextInTooltip_True() { bool result = false; result = toolTip.GetComponent<ToolTipText>().ToolTipTextInputCheck("TEST"); Assert.IsTrue(result); } [TearDown] public void Teardown() { Object.DestroyImmediate(toolTip); } } Einziges Problem, das ich noch habe ist folgender Abschnitt: toolTip.GetComponent<ToolTipText>().toolTipText = gameObject.AddComponent<Text>(); Lagere ich das ganze in eine Funktion aus welche in der zu testenden Klasse ist, und rufe die Funktion im Setup auf, habe ich kein Problem mehr. Ich wollte das ganze allerdings auch das ganze in der TestSetup machen.
  9. Noch Banaler kann sein das man erst mal in Visual Studio speichern muss damit Unity anfängt zu denken.
  10. Tatsächlich ist Sie eine. using System.Collections; using System.Collections.Generic; using NUnit.Framework; using UnityEngine; using UnityEngine.TestTools; namespace Tests { public class ToolTipWindow_Test : MonoBehaviour { [Test] public void CheckTextInTooltip() { bool result = false; ToolTipText toolTip = gameObject.AddComponent(typeof(ToolTipText)) as ToolTipText; result = toolTip.ToolTipTextInputCheck(""); Assert.IsFalse(result); } } }
  11. Tatsächlich fliegt der Fehler schon bei: ToolTipText toolTip = gameObject.AddComponent(typeof(ToolTipText)) as ToolTipText; Der genau Fehlertext: Ich hänge mal die Entsprechende (noch schlampig aussehende) Klasse an. using UnityEngine; using UnityEngine.UI; public class ToolTipText : MonoBehaviour { [Header("Einstellungen")] [Tooltip("Zeit in Sekunden bis das Tooltip erscheint")] [Range(0.0f, 5.0f)] public float targetTime = 1.5f; [Tooltip("Gibt an ob das Tooltip per Default Aktiv ist")] public bool ToolTipAktiv = true; [Tooltip("Gibt an ob das Tooltip aktuell aktiv ist oder nicht")] public bool ToolTipVisible = false; [Header("Zuweisungen")] public Text toolTipText; public GameObject toolTipPanel; [SerializeField] private float deltaTimer = 0.0f; Vector3 MousCordOffset = new Vector3(0, 0, 0); private void Start() { } public void ToolTip(string Text) { toolTipText.text = Text; } public void Update() { if (ToolTipAktiv) { ToolTipVisible = ToolTipTextInputCheck(toolTipText.text); toolTipPanel.gameObject.transform.position = ShowToolTip(ToolTipVisible); Debug.Log(toolTipPanel.gameObject.transform.position); //if (!ToolTipVisible) //{ // deltaTimer -= Time.deltaTime; // if (deltaTimer <= 0.0f) // { // ToolTipVisible = true; // } //} //else //{ // MousCordOffset.x = Input.mousePosition.x + 20; // MousCordOffset.y = Input.mousePosition.y + 00; // toolTipPanel.gameObject.transform.position = MousCordOffset; //} } } /// <summary> /// In abhängigkeit vom Text wird True oder False zurück gegeben /// </summary> /// <param name="text">Text kommt vom tooltip.text</param> /// <returns>Ist text leer, wird False zurück gegeben. Sonst True</returns> public bool ToolTipTextInputCheck(string text) { if (text.Length == 0 || text == null) { toolTipPanel.gameObject.transform.position = new Vector3(-500, -500, 0); deltaTimer = targetTime; return false; } return true; } private Vector3 ShowToolTip(bool toolTipVisible) { if (!toolTipVisible) { deltaTimer -= Time.deltaTime; if (deltaTimer <= 0.0f) { ToolTipVisible = true; } return new Vector3(-500, -500, 0); } else { MousCordOffset.x = Input.mousePosition.x + 20; MousCordOffset.y = Input.mousePosition.y + 00; return MousCordOffset; } } }
  12. Ich will meinen Code etwas solider gestalten und versuche mich gerade in die Unittests mit Monobehaivour heran zu tasten. Im Moment scheitere ich aber schon daran überhaupt mein Script aufgerufen zu bekommen: public void CheckTextInTooltip() { bool result = false; ToolTipText toolTip = gameObject.AddComponent(typeof(ToolTipText)) as ToolTipText; result = toolTip.ToolTipTextInputCheck(""); Assert.IsFalse(result); } Der Editor verkündet immer ein NullReference Error. Dass ich solche Klassen nicht einfach mit New Instanziieren kann ist mir mittlerweile klar. Eine weitere Frage: Kann ich diese Unittests auch automatisiert in Azure DevOps testen lassen?
  13. Ein wenig weiter gearbeitet. Radarschüssel ist dran, 2 Frachtcontainer wurden angehängt und dann noch Waffen an den Flügelspitzen. Das ganze muss ich noch fertig Textuieren und dann mal eine kleine Demo draus machen.
  14. Um mal mein skill für texturen zu verbessern habe ich mal ein kleines Low poly Modell erstellt und erstelle dafür eine textur. Mal der aktuelle Zwischenstand.
  15. Letztendlich suche ich ein System mit dem ich effizenter guis erstellen kann. Von daher hast du recht, doozyui ist da der Flasche weg. Ich werde noch etwas mit uibuilder herum spielen.
  16. Okay also wenn NGUI Praktisch identisch mit UGUI ist, dann habe ich davon keinen wirklichen Mehrwert. Für mich klingt DoozyUI letztlich nach einer Ergänzung für Animationen etc. aber nicht um wirlklich ein UI zu bauen? In dem zusammenhang bin ich auf das Video gestoßen: Den UI Builder selbst habe ich als Package herunterladen und installiert, darin auch etwas herum gespielt. Nur bin ich dann gescheitertet das erstellte UI auch anzeigen zu lassen.
  17. Ich konnte das Problem jetzt lösen in dem ich Unity vollständig gelöscht und neu installiert habe. Keine Ahnung warum es überhaupt zu dem Problem gekommen ist.
  18. Ich bin reichlich erstaunt und genervt. Nach einem Urlaub habe ich mein Unity auf 2019.2.9.f1 upgedatet. Seid dem hab ich mit meinem Projekt massive Problem, unter anderem ist im Code die using UnityEngine.UI; nicht mehr finden können. Die dll selbst ist zwar auf der Festplatte vorhanden, aber nach dem manuellen Einfügen und einmal Builden in Unity fliegt mir die Referenz wieder raus. ReImport All habe ich bereits Probiert, auch das bringt keine besserung. Erstelle ich ein komplett neues Projekt, kann ich die Dll problemlos nutzen. Ich stehe vor einem Rätsel
  19. Da mein Spiel in die Richtung 4X gehen wird, wird es sehr Menulastig werden. Im Assetstore findet man ja schon einiges in der Richtung, das einem helfen soll, GUI zu erstellen. Für mich stellt sich die Frage, ob dinge wie NGUI oder DoozyUI tatsächlich sinnvolle ergänzungen bzw. ersatz für das Unity UI System darstellen.
  20. Nächster zwischen Schritt ist fertig Jetzt kann ich mich darum kümmern die Panels aufzubohren, für das Energiemanagement und die Gefechtsmanöver.
  21. Im Moment arbeite ich etwas an der Grafik. Aktuelle Baustelle: Eine Progress bar. Ich überlege gerade ein Klickevent dafür einzubauen um zwischen Absoluten und Prozent werten zu ändern.
  22. Modifikationen für Module stehen zwar auf der ToDo Liste, aber noch sehr weit unten. Der Kampf ist aktuell bewusst noch sehr rudimentär und ohne großartigen Feedback gehalten. Hier ist der Link zu einem Eintrag wo ich schon deutlich mehr Sachen drin hatte, was aber einfach bei der Umstellung von XNA auf MonoGame und jetzt auf Unity verloren gegangen ist. http://bradley-labs.de/2015/04/19/space-opera-release-090/ Ziel ist es auch von der statischen Ansicht, auf eine tatsächliche Gefechtskarte zu wechseln: Auch das gab es mal als Prototyp in einer vorgehenden Inkarnation. Was der Ressourcen Abbau angeht, auch der ist 'noch' bewusst reduziert gehalten. Hier in dem Video hatte ich mal vorgestellt, was ich mir mit den Ressourcenabbau vorgestellt habe:
  23. Erkklärung der Symbole von Links nach rechts: Schild Struktur -> die allgemeine 'Stabilität' deines Schutzschilds. Sinkt Sie, durchschlagen Angriffe deinen Schild und Treffen direkt auf die Panzerung. Diese Funktion ist allerdings noch nicht implementiert. Schild Stärke -> die allgemeine 'dicke' deines Schilds, aktuell wird jeder schaden direkt von der Schildstärke abgezogen. Panzerung -> aktuell nur ein HP Puffer. Später wird die Art der Panzerung noch Auswirkung auf die Ausweichwerte eines Schiffes haben. Struktur -> der eigentliche 'Rahmen' des Schiffes in dem alle anderen Module angebracht sind. Sinkte die Struktur auf 0, wars das. Unter den Symbolen hast du auch 2 Waffensyste, die Railgun und die Wespe Rakete. Auf dem Bild kann ich sehen, dass du keine der Waffen aktiviert hast. Daher feuerst du auch nicht zurück. EDIT: Ich nehm deine Fragen mal als Hinweis auf das ich hier einen Tooltip einbauen sollte ...
  24. Oh äh ^^ ja das ist der Startdialog, mit Rechtsklick geht der weiter Ich denke ich sollte da noch einen Hinweis machen
×
×
  • Create New...