Warum wird nichts mehr in der Konsole angezeigt?

malte314  23.07.2024, 11:32

Um welche Sprache und welche Konsole geht es? JavaScript in der Konsole im Internet Browser?

Clemens5678 
Beitragsersteller
 23.07.2024, 11:32

Oh sorry, es geht um Unity also C#

cleanercode  23.07.2024, 11:32

Wo? Welche Sprache? Welche Plattform?

Clemens5678 
Beitragsersteller
 23.07.2024, 11:34

Unity, C#, PC

2 Antworten

Doch irgendwie wird in der Konsole nur Errors angezeigt wenn ich was Falsch mache

Irgendwie logisch. Syntaxfehler führen zu einer Benachrichtigung durch die IDE, dass der Kompilierungsvorgang nicht gestartet werden kann.

Statt

Debug.Log("Hallo");

Probiere einfach mal

Console.WriteLine("Hallo");

regex9  24.07.2024, 01:26

Er befindet sich im Unity-Kontext. Eine Ausgabe via Console-Klasse wird nicht in die Unity-Konsole geleitet und ist daher kein Ersatz für die Logging-Methoden der Debug-Klasse.

0
Clemens5678 
Beitragsersteller
 23.07.2024, 11:43

Bekomme die Fehlermeldung:"Der Name "Console" ist im aktuellen Kontext nicht vorhanden." Ich weiß schon das ein Error angezeigt wird wenn ich zum Beispiel ein ; nach einem Befehl vergesse ich meine nur das Errors mir angezeigt werden aber sonst halt nichts.

0
BorisG2011  23.07.2024, 11:51
@Clemens5678

Die Klasse Console findet sich im Namensraum System. Um sie verfügbar zu machen, ist dem Programmtext voranzustellen:

using System;

Die Klasse Debug befindet sich im Namensaraum System.Diagnostics. Um sie verfügbar zu machen, ist dem Programmtext voranzustellen:

using System;
using System.Data;
using System.Diagnostics;

Hier ist ein kurze Beispiel für die Verwendung von Debug:

https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.debug?view=net-8.0

Beachte, dass Debugging die Compileroption

/d:DEBUG

verlangt.

1
cleanercode  23.07.2024, 15:44
@BorisG2011

Ich habe gehofft, dass er selbst auf die Usings kommt - aber so geht's auch :-)

0

Dein Skript sowie die Methode, in dem die Log-Methode steht, müssen zur Laufzeit auch eingebunden/aufgerufen werden.

  1. Lege dir im Hierarchy-Fenster ein Game Object an und ziehe es via Drag & Drop in deine Szene.
  2. Lege dir im Projects-Fenster (unter Assets) ein Skript an (z.B. mit dem Namen MyScript) und ziehe es via Drag & Drop auf dein Game Object im Hierarchy-Fenster.
  3. Der Code im Script könnte folgendermaßen aussehen:
using UnityEngine;

public class MyScript : MonoBehaviour
{
  void Awake()
  {
    Debug.Log("Hello world!");
  }
}

Hierbei ist wichtig, das Klassenname und Name der Skriptdatei identisch sind.

Des Weiteren wird die Log-Methode in einem von Unity zur Verfügung gestellten Hook aufgerufen (Awake). Eine Auflistung verfügbarer Hooks mitsamt Erklärung findest du in der API-Dokumentation (Abschnitt: Messages). Falls du die von mir genannten Fenster/Views nicht findest, schau ebenfalls in das Manual (Unity's Interface).

Starte im Anschluss den Play-Mode (via Klick auf den Play-Button über der Scene View). Die Ausgabe wird daraufhin im Console Window angezeigt.

Ich bin ein KOMPLETTER Anfänger im programmieren (...)

Gerade deswegen würde ich davon abraten, mit/in Unity C#-Programmierung zu lernen. Fokussiere dich erst einmal nur auf die C#-/.NET-Grundlagen. Konsolenanwendungen in Visual Studio bieten ein gutes, reduzierteres Umfeld für den Start.