Страница 1 из 2

Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 09:49
DimaJoke
Крч я собираюсь сделать консоль разработчика. И главная проблема у меня - это вывести все логи, Вары и ероры в UI text.. для этого, насколько я понял, нужно её прочитать(логично) и вот тут проблема

Пытался забитьэтот вопрос в поисковик, но ничего дельного он мне не выдал(

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 10:24
DimaJoke
Сегодня попробую Debug.ReadLine();
И просто через \n добавлять в text вопрос не закрываю, может не заработать..

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 10:25
Friend123
DimaJoke писал(а):Пытался забить этот вопрос в поисковик, но ничего дельного он мне не выдал(

Дельного много, искать надо уметь: https://answers.unity.com/questions/1020051/print-debuglog-to-screen-c.html

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 12:12
seaman
Читать консоль - это извращение.

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 12:42
Tolking

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 12:58
DimaJoke
seaman писал(а):Читать консоль - это извращение.

Не понимаю, чего такого. Я просто собираюсь сделать консоль по типу консоли разработчика в движке Source.

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 13:24
Anonymyx
Вам же для игры консоль нужна?
Тогда делаете свой консоль, расставляете в коде try-catch'и, сами выводите ошибки, предупреждения где-надо. Создаете команды, привязываете к методам...

Re: Чтение консоли через скрипт и вывод в UI Text

СообщениеДобавлено: 07 ноя 2018, 15:15
DimaJoke
В-общем
Начал писать свою консоль, как это предложил
Anonymyx
Точно что предложил Friend123 работает.
Буду это юзать, если не сработает.

Есть небольшой НЕБОЛЬШОЙ вопросик..
Я решил сделать статичный класс Console.. сделать там ф-ции типа Log(string Line) что бы из любого скрипта отправлять в консоль сообщение как Console.Log("MyLog");
Так же я сделал скрипт GameConsole который будет отвечать за отображение текста в консоли, но я не совсем понимаю, как мне в классе Console найти объект, на котором висит этот скрипт(GameConsole) и отправлять туда эту же строку, которую я получил посредством Console.Log("MyLog")..

Что я пробовал?
Создать класс Console в самом скрипте GameConsole, но не помогает. Я бы добавилс скрипт Console на сцену, но статичные классы не дружат с MonoBehaviour, а без него не добавить скрипт на сцену...

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 15:51
Anonymyx
Мне кажется лучше объединить эти 2 сущности.
Чтобы обращаться к методу через тип не обязательно класс делать статиком. Сделай обычный класс GameConsole а метод Log() сделай статик.
Называть класс Console нежелательно так как уже есть такой класс.

А так, чтобы было легче находить и обращаться к разным экземплярам классов на сцене, можно использовать шаблон Синглтон:
Синтаксис:
Используется csharp
public class Test : MonoBeh

public static Test inst;
public int x;
void Awake()
{
inst = this;
}
 


Теперь вы можете просто обратиться к статик полю inst типа Test и дальше уже к нужным публичным полям:

Синтаксис:
Используется csharp
Test.inst.x = 5f;
 

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 16:08
DimaJoke
Anonymyx писал(а):Называть класс Console нежелательно так как уже есть такой класс.

А где такой класс находится? Дефолтный в с#?

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 16:30
DimaJoke
Что-то не так
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

class GameConsole()
{
public static void Log(string Log)
{
Debug.Log(Log);

}

}


public class GConsole : MonoBehaviour
{

public Text Console;

public void WriteLog(string Line)
{
Console.GetComponent<Text>().text = Console.GetComponent<Text>().text + "\n [Console Log]" + Line;
}

}

 


Assets/Scripts/GConsole.cs(6,18): error CS1644: Feature `primary constructor' cannot be used because it is not part of the C# 4.0 language specification
понял, что что-то не совсем совместимо с с#, но что? :-?

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 17:03
1max1
class GameConsole()
Круглые скобочки в конце не ставят.

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 17:12
Friend123
DimaJoke писал(а):понял, что что-то не совсем совместимо с с#, но что? :-?

Такое ощущение, что вы пытаетесь сделать мерседес, умея при этом собрать только колесо от него.
Может сначала задаться целью полностью изучить язык?

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 17:16
DimaJoke
Friend123 писал(а):
DimaJoke писал(а):понял, что что-то не совсем совместимо с с#, но что? :-?

Такое ощущение, что вы пытаетесь сделать мерседес, умея при этом собрать только колесо от него.
Может сначала задаться целью полностью изучить язык?

Как же круто форумчан делают метафоры (3A4OT)
За совет спасибо. Я забыл, что у классов не ставятся круглые скобки.. тупанул.. но не более.. я сразу пошёл в разработку на unity, когда изучил с++ для своих целей. Изучил, а с# и с++ очень похожи

Re: Чтение консоли через скрипт и вывод в UI Text+Пишем консоль

СообщениеДобавлено: 07 ноя 2018, 17:28
DimaJoke
1max1 писал(а):class GameConsole()
Круглые скобочки в конце не ставят.

Спасибо.