Jump to content
Unity Insider Forum

Bradley

Members
  • Content Count

    74
  • Joined

  • Last visited

  • Days Won

    3

Bradley last won the day on July 2 2019

Bradley had the most liked content!

Community Reputation

12 Gut

About Bradley

  • Rank
    Advanced Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 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.
  2. Noch Banaler kann sein das man erst mal in Visual Studio speichern muss damit Unity anfängt zu denken.
  3. 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); } } }
  4. 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; } } }
  5. 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?
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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
  12. 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.
  13. Nächster zwischen Schritt ist fertig Jetzt kann ich mich darum kümmern die Panels aufzubohren, für das Energiemanagement und die Gefechtsmanöver.
  14. 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.
×
×
  • Create New...