Debug.Log () не отображает ничего

Резюме


Попытка создать базу для механика, просто пытаясь заставить ее фактически запускать после того, как прошло х х времени. На данный момент я использую Debug.Log() чтобы сделать его очевидным, если вызвано событие y. Это ничего не выводит на консоль, что является проблемой. В принципе, я пытаюсь настроить механика калеки, поэтому, когда время проходит, отрицательный эффект применяется к персонажу, если они не делают что-то, чтобы избежать этого.

Исследование


Печать / Debug.Log не отображает вывод на консоли Unity

https://docs.unity3d.com/ScriptReference/Debug.Log.html

Вопрос


Что происходит в мире? Я убедился, что все проблемы, о которых я знаю, могут вызвать проблемы, это не так. К сожалению, эти проблемы, похоже, не так. Итак, какие-нибудь идеи? Код ниже. Извините за то, что вы копируете все, но я не могу указать, откуда эта проблема.

Код


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


public class Cripple:MonoBehaviour
{
    public int EffectMagnitude;
    public string EffectType;
    public int TimeForIncrease;

    private void Start()
    {
        EffectStart();
    }

    private void Update()
    {

    }


    IEnumerator EffectStart()
    {
        int CounterCripple = 0;
        do
        {
            Debug.Log("Has run: " + CounterCripple);
            if (CounterCripple >= TimeForIncrease && CounterCripple < TimeForIncrease * 2)
            {
                if (EffectType == "Hunger")
                {
                    Debug.Log("<color=blue> Hunger effect triggered</color><color=green> Tier One</color>");
                }

                else if (EffectType == "Restless")
                {
                    Debug.Log("<color=blue> Restless effect triggered</color><color=green> Tier One</color>");
                }

                else if (EffectType == "Thirst")
                {
                    Debug.Log("<color=blue> Thirst effect triggered:</color><color=green> Tier One</color>");
                }
            }

            else if (CounterCripple >= TimeForIncrease * 2 && CounterCripple < TimeForIncrease * 3)
            {
                if (EffectType == "Hunger")
                {
                    Debug.Log("<color=blue> Hunger effect triggered</color><color=orange> Tier Two</color>");
                }

                else if (EffectType == "Restless")
                {
                    Debug.Log("<color=blue> Restless effect triggered</color><color=orange> Tier Two</color>");
                }

                else if (EffectType == "Thirst")
                {
                    Debug.Log("<color=blue> Thirst effect triggered:</color><color=orange> Tier Two</color>");
                }
            }

            else if (CounterCripple >= TimeForIncrease * 3)
            {
                if (EffectType == "Hunger")
                {
                    Debug.Log("<color=blue> Hunger effect triggered</color><color=red> Tier Three</color>");
                }

                else if (EffectType == "Restless")
                {
                    Debug.Log("<color=blue> Restless effect triggered</color><color=red> Tier Three</color>");
                }

                else if (EffectType == "Thirst")
                {
                    Debug.Log("<color=blue> Thirst effect triggered:</color><color=red> Tier Three</color>");
                }
            }
            CounterCripple++;
            yield return new WaitForSecondsRealtime(1);
        } while (true);
    }


}

Всего 1 ответ


Используйте StartCoroutine(EffectStart()) а не только EffectStart() .

Мне показалось, что эта функция, которую вы пытались назвать, была Coroutine . Цитата из документации Unity, которую можно найти здесь: Документация Coroutine от Unity

« Чтобы настроить выполнение сопрограммы, вам необходимо использовать функцию StartCoroutine »


Есть идеи?

10000