Как Debug.log или распечатать на экране? - PullRequest
0 голосов
/ 21 июня 2020

Я тренируюсь по учебнику Unity, но когда учитель редактирует код с помощью MonoDevelop, я использую Visual Studio 2017.

Он ввел код, например:

using System.Collections;
using System.Collections.Generic;   
using UnityEngine;
   [snip]
Debug.log("Hello World");
print ("Hello World");

... но последние две строки не работают, когда я их ввожу. Самый важный ключ к разгадке заключается в том, что Intellisense не начинает набирать для меня «Отладка» или «Печать». Visual Studio?

И установка MonoDevelop решит проблему?

EDIT:

Я не думал, что мне нужно показывать код «[snip]», но это был самонадеян. Вот и все:

using System.Collections;
using System.Collections.Generic;   //This is not in the tutorial's version
using UnityEngine;

public class HelloWorld : MonoBehaviour
{

    // Start is called before the first frame update
    void Start()
    {
        string name = "Shawn V. Wilson";
        int age = 39;
        float speed = 4.3f;
        bool likes = false;
        var stringArray = new string[2];
        stringArray[0] = "hello";
        stringArray[1] = "world";

        var phrase = stringArray[0] + " " + stringArray[1];
     
       //print[phrase];     Ignoring this for now
       debug.log[phrase];

    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

В Unity я получаю ошибку:

error CS0103: The name 'debug' does not exist in the current context

... но еще до того, как я добрался до Unity, команда отладки не распознается VS. (Он не появляется при вводе впереди, и не следует ли делать его заглавными?)

Ответы [ 4 ]

0 голосов
/ 21 июня 2020

Для intelli sense для VS вы можете включить его в «Правка -> Intelli Sense» или просто установить самую новую / старую версию VS.

Например, вы можете установить VS 2015/2019 Community Edition, это самый быстрый способ.

0 голосов
/ 21 июня 2020

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

, если вы хотите, чтобы он вызываться, когда вы запускаете приложение, поместите свой код в

void Start()
{
print("Hello World");
}

, если вы хотите, чтобы он запускал каждый кадр, поместите его в

void Update()
{
print("Hello World");
}

или просто создайте пользовательскую функцию

private void MyFunction()
{
print("Hello");
}

и звони, когда хочешь ..

Надеюсь, это тебе поможет

0 голосов
/ 21 июня 2020

Вы должны использовать:

Debug.Log("Hello World");

Или создать собственную консоль, но не забудьте использовать UnityEngine.UI! Это простой пример.

public class Console{
Text output; //Then select the select you want to be your custom console

public void print(string message){
output.text += message;
}
}

public class Program : MonoBehaviour{
void Start(){
Console CustomConsole = Console;
Console.print("Hello World!");
}
}
0 голосов
/ 21 июня 2020

Две ваши строки кода не находятся ни в одной функции.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

void Start ()
{
    Debug.log("Hello World");
    print ("Hello World");
}

Существуют такие функции, как функция запуска или обновления, которые вызываются автоматически, например функция запуска или функция обновления. Функция start вызывается при первом запуске скрипта, поэтому вызывается только один раз. Функция обновления вызывается каждый кадр.

...