Unity Update関数について
UnityのUpdate関数について
UnityのボタンにUpdate関数を作成したのですが、
関数内の処理がボタンを押す前から作動してしまっています。
ボタンを押したらUpdate関数を呼ぶようにしたいのですが、どのような方法がありますでしょうか。
0 likes
UnityのボタンにUpdate関数を作成したのですが、
関数内の処理がボタンを押す前から作動してしまっています。
ボタンを押したらUpdate関数を呼ぶようにしたいのですが、どのような方法がありますでしょうか。
Update関数はunity側で用意されている関数で、呼び出しはunity側で行われています。ですので、我々開発者側から意図したタイミングで能動的にupdate関数を呼び出すことはできません。(詳しくは公式リファレンスを熟読していただくことをおすすめします。)
Update関数やStart関数のような、unityその他で設定されている名前を使用していない関数のみ、Buttonで呼び出すことが可能です。
仮に、Buttonを押した動作を起点に、毎フレーム何らかの処理を繰り返したいのであれば、フラグ変数を使用していただくのが一番簡潔な方法だと思います。
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型など、不明点あれば検索かけてみてください。