Unityanfang Geschrieben 30. Juli 2016 Melden Share Geschrieben 30. Juli 2016 Hallo, Ich habe ein Problemchen mit dem UI von einem Objekt; Input Field. Erläuterung: Ich habe einen Canvas, auf welchem eine Text-Objekt liegt. Dieses Objekt besitzt das UI: Input Field. Ich möchte nun, dass der Text, welchen ich in das Input Feld schreibe, in einer Variable abgespeichert wird. Dazu habe ich eine Text-Objekt InputID genannt und dieses die Input Field Komponente gesteckt. Um das Input Field zu benutzen braucht man eine Text Komponente. Diese habe ich von dem InputID genommen. Nun sollte ich in diesem InputID schreiben können. Funktioniert . Leider wird nun das Geschriebene nicht mehr angezeigt. Dazu möchte ich nun diesen geschriebenen Text in eine Variable schreiben und iwie anders wieder anzeigen. Nur verstehe ich nicht, wie ich eine direkte Zuweisung mache und bekomme daher bei dem Code: public void IDeingabe (){ id = InputID.text; print ("Veränderung"); } die Fehlermeldung NullReferenceException: Object reference not set to an instance of an object Register.IDeingabe () (at Assets/Skripts/Register.cs:14) UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:144) UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:621) UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:756) UnityEngine.Events.UnityEvent`1[T0].Invoke (.T0 arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:53) UnityEngine.UI.InputField.SendOnValueChanged () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:1438) UnityEngine.UI.InputField.Insert (Char c) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:1426) UnityEngine.UI.InputField.Append (Char input) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:1493) UnityEngine.UI.InputField.KeyPressed (UnityEngine.Event evt) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:1073) UnityEngine.UI.InputField.OnUpdateSelected (UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/InputField.cs:1119) UnityEngine.EventSystems.ExecuteEvents.Execute (IUpdateSelectedHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:101) UnityEngine.EventSystems.ExecuteEvents.Execute[iUpdateSelectedHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:269) UnityEngine.EventSystems.EventSystem:Update() Hilfe? PS: Bei dem Input Field habe ich mein Skript dem On Value Changed (String) zu gewiesen. Vielen Dank Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juli 2016 Melden Share Geschrieben 30. Juli 2016 Wie setzt du denn den Wert von InputID? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unityanfang Geschrieben 30. Juli 2016 Autor Melden Share Geschrieben 30. Juli 2016 Wie meinst du das? Ich habe davon noch nicht so viel Ahnung^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juli 2016 Melden Share Geschrieben 30. Juli 2016 Naja, du hast offenbar eine Variable InputID. Und der Fehler sagt, dass diese Variable auf kein Objekt zeigt, dessen "text" man verändern könnte. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unityanfang Geschrieben 30. Juli 2016 Autor Melden Share Geschrieben 30. Juli 2016 InputID ist der Name des Objekt UI-Text, in welchem sich die Komponente befindet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juli 2016 Melden Share Geschrieben 30. Juli 2016 Du kannst nicht einfach den Namen eines GameObjects in deinen Code reinschreiben und hoffen, dass er weiß, was du meinst Du hast irgendwo in deinem Code eine Variable namens InputID definiert. Wie sieht diese Definition aus? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unityanfang Geschrieben 30. Juli 2016 Autor Melden Share Geschrieben 30. Juli 2016 Nur public Text InputID; Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unityanfang Geschrieben 30. Juli 2016 Autor Melden Share Geschrieben 30. Juli 2016 Ich verstehe jetzt, was sie meinen. Das Problem wäre schonmal gelöst. Das Problem ist nur noch, wie bekomme ich jetzt das Eingegebene in eine Variable ? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 31. Juli 2016 Melden Share Geschrieben 31. Juli 2016 Durch ein Zuweisung, so wie sie da oben steht? P.S. Bitte nicht sietzen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Unityanfang Geschrieben 31. Juli 2016 Autor Melden Share Geschrieben 31. Juli 2016 "Durch ein Zuweisung, so wie sie da oben steht?" --> id = Text.text; --> Nicht möglich, weil der Text der Text-Komponente leer ist. Der Text wird nicht in die Text.text geschrieben, sondern in die Input Field.text . Das Problemchen ist nur, wie kann ich auf diese Zugreifen? http://img5.fotos-ho...rl6zdcai3ov.png PS: Hat sich gelöst, das Problem war so simple... Ich hatte eine Fehlermeldung, die sich so oft wiederholt hat, dass sich der Text nur dann synchronisiert hat, wenn man auf den Text klickt. Vielen Dank trotzdem für die viele Mühe! Entschuldigung für die schlimme Rechtschreibung. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.