как остановить функцию обновления, вызывая один раз за кадр - PullRequest
0 голосов
/ 01 октября 2019

Я хочу, чтобы скрипт вызывал маркер только один раз. Не спамить консоль.

    // Update is called once per frame
    void Update()
    {
        StateManager sm = TrackerManager.Instance.GetStateManager();
        IEnumerable<TrackableBehaviour> tbs = sm.GetActiveTrackableBehaviours();
        foreach (TrackableBehaviour tb in tbs)
        {
            string name = tb.TrackableName;
            Debug.Log("call update " + name);

            targetname.GetComponent<Text>().text = name;


            if (name == markerName)
            {
                detail.gameObject.SetActive(true);
                panel.gameObject.SetActive(true);
                logoImage.gameObject.SetActive(true);

                detail.GetComponent<Text>().text =Data + "\n" + stringB;
                StartCoroutine(LoadSpriteImageFromUrl(photo));

            }
            else
            {

            }
        }
    }

это мой код.

1 Ответ

0 голосов
/ 01 октября 2019

Здравствуйте и добро пожаловать в Stackoverflow

У меня нет никаких знаний относительно vuforia, но поведение, которое вы описываете, предельно легко достичь.

Давайте назовем код, который должен быть запущентолько один раз код инициализации. Затем вы можете создать отдельный метод, который выполняет только этот код. Чтобы выполнить это только один раз, вы можете использовать флаг, чтобы проверить, было ли оно выполнено или нет. Затем добавьте простую логику в метод обновления yur: если код инициализации не был выполнен, сделайте это, если он был выполнен, пропустите его.

public class ContainingClass
{
    public static bool InitRun = false;

    public void Init() //Executed once on the first update call
    {

    }

    public void Update() //Executed on every frame
    {
        if(!InitRun)
        {
            Init(); //Call intialization code
            InitRun = true; //set flag that initialization has been run
        }
    }
}

Это, по крайней мере, должно обеспечить подходящее решение для вашего поведения. описано.

Я также рекомендую искать встроенные функции инициализации в платформе, как это должно быть предусмотрено.

...