@728ll

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Unity Update関数について

Q&A

Closed

UnityのUpdate関数について

UnityのボタンにUpdate関数を作成したのですが、
関数内の処理がボタンを押す前から作動してしまっています。
ボタンを押したらUpdate関数を呼ぶようにしたいのですが、どのような方法がありますでしょうか。

0 likes

1Answer

Update関数はunity側で用意されている関数で、呼び出しはunity側で行われています。ですので、我々開発者側から意図したタイミングで能動的にupdate関数を呼び出すことはできません。(詳しくは公式リファレンスを熟読していただくことをおすすめします。)

Update関数公式リファレンス

Update関数やStart関数のような、unityその他で設定されている名前を使用していない関数のみ、Buttonで呼び出すことが可能です。

仮に、Buttonを押した動作を起点に、毎フレーム何らかの処理を繰り返したいのであれば、フラグ変数を使用していただくのが一番簡潔な方法だと思います。

Test.cs
using UnityEngine;

public class Test : MonoBehaviour
{
    private bool playMode = false; //bool型のフラグ変数

    // Update is called once per frame
    void Update()
    {
        //もしフラグ変数がtrueであれば
        if (playMode == true)
        {
            //ここに動作させたい処理
            //とりあえず、デバッグログを吐かせてみました
            Debug.Log("test");
        }
    }

    //Buttonで登録しておく関数
    public void OnClickPlay()
    {
        //フラグ変数をtrueにする
        playMode = true;
    }
}

こんな感じですかね。
フラグ変数の概念やbool型など、不明点あれば検索かけてみてください。

0Like

Your answer might help someone💌