Jump to content
Unity Insider Forum

jtuchel

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by jtuchel

  1. Genau, also ich habe das mal erweitert. Das Behaviour wäre public class MovementBehaviour : MonoBehaviour { public void Move(InputAction.CallbackContext inputContext) { Vector2 movementDirection = inputContext.ReadValue<Vector2>(); transform.position += new Vector3(movementDirection.x, movementDirection.y, transform.position.z); } } und der Test dazu wäre zb [TestFixture] public class MovementBehaviourTests { [Test] public void ItShouldMove() { GameObject gameObject = new GameObject(); MovementBehaviour movementBehaviour = gameObject.AddComponent<MovementBehaviour>(); // movementBehaviour.Move(); // pass in Vector2.right Assert.AreEqual(gameObject.transform.position, Vector3.right); } } Mir ist halt nicht klar, wie ich im Test den Parameter richtig übergebe.
  2. Ich versuche mal kurz Beispielcode zu zeigen public void Move(InputAction.CallbackContext inputContext) { Vector2 newInput = inputContext.ReadValue<Vector2>(); transform.position += new Vector3(newInput.x, newInput.y); } Dass das kein echter Code ist, ist hoffentlich klar Aber nehmen wir es mal an. Dann könnte ich mit dem Testrunner einen Unit Test aufsetzen, indem ich mir ein leeres GameObject erzeuge, diesem GO das Script hinzufüge, das GO an eine bestimmte Stelle setze, die Move Methode aufrufe und im Test dann überprüfe, ob es sich danach an der erwarteten Position befindet. Dazu muss ich mir aber eine Instanz von InputAction.CallbackContext zusammenbauen, die den zu lesenden Input enthält. Und mir ist anhand der Docs https://docs.unity3d.com/Packages/c....InputSystem.InputAction.CallbackContext.html noch nicht klar, wie ich die erzeugte Instanz so manipuliere, dass die Zeile Vector2 newInput = inputContext.ReadValue<Vector2>(); den Fake Input ausliest.
  3. @malzbie sorry, dann habe ich mich falsch ausgedrückt. Wie rufe ich deine Methode "LeftRight" in meinem Unittest auf, also wie baue ich mir den Parameter so zusammen, dass der erwartete Input "drin steckt"?
  4. Hallo zusammen, in meinem Projekt nutze ich das neue Input System und möchte eine Methode in einem Script testen, das einen Parameter vom Typ InputAction.CallbackContext übergeben bekommt. Innerhalb der Methode lese ich dann von diesem Parameter den Input aus und reagiere dementsprechend. Es ist möglich, diese Methode zu testen (den Output kann ich abfragen), aber dafür muss ich bei Aufruf diesen Parameter übergeben. Wie baue ich denn diesen Parameter mit Input zusammen? Also sagen wir mal über den Input wird ein Vector2 aktualisiert und ich möchte testen, dass dieser Vector2.right ist, wie muss ich mir den Parameter zusammenbauen, damit die Methode den entsprechenden Wert ausliest und ich die beiden Vektoren vergleichen kann? Vielen Dank schon einmal
×
×
  • Create New...