【Unity】一回しか処理を実行させない2つの方法

~~本当は2つだけではないですが、ちょっと編集中ってことで許してください~~

  • 一回しかこの処理行わせたくないな

という場合があるかと思います。

  • Startメソッドを使う
  • true,falseを使う

一回しかメソッドを実行しない方法にはこの2つがあります。

その2つのスクリプト例もお伝えします。

目次

一回しかメソッドを実行させない方法

  • Startメソッドを使う
  • true,falseを使う

Startメソッドを使う

単純に実行したいメソッドをUpdataメソッド内に書くのではなく、Startメソッド内に書きます。

Startメソッドはゲーム開始時に一回のみ実行されるので、これで複数回実行されることはなくなります。

スクリプト例

立方体に「PlayerController」という名前のスクリプトがアタッチされてます。

Startメソッド内に処理を書く

Startメソッド内にメソッドを書く

スクリプト

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

public class PlayerController : MonoBehaviour {

    // Use this for initialization
    void Start () {
        // オブジェクトをx軸方向に移動
        transform.Translate(5, 0, 0);
    }

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

    }
}

このようにゲーム開始時に一度だけ実行されます。

Updateメソッド内に処理を書く

Upadateメソッド内にスクリプトを書く

スクリプト

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

public class PlayerController : MonoBehaviour
{

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
    void Update()
    {
     // オブジェクトをx軸方向に移動
     transform.Translate(5, 0, 0);
    }
}

1フレームごと実行されるので、なんども実行されます。

true,falseを使う

if文を使って、そのメソッドがtrueのときに実行する!のようにすれば、一回の実行でおさえることができます。

これはスクリプトを見たほうがわかりやすいです。

true,falseを使って一回のみメソッドを実行する

Upadateメソッド内にスクリプトを書く

スクリプト

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

public class PlayerController : MonoBehaviour
{
    // 変数宣言
    bool test = true;

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
    void Update()
    {
        if(test == true)
        {
            transform.Translate(5, 0, 0);
            test = false; 
        }

    }
}

最初に【test】変数の状況を【true】にしておきます。そしてif文で【test】変数の中身が【true】のときに実行するスクリプトを書いています。

そしてif文の中で【test】変数の中身を【false】にしています。これでUpdateメソッド内に書いてあっても、実行されませんね。

まとめ

  • Startメソッドを使う
  • true,falseを使う

特定の条件下でメソッドを一回しか使えないようにする方法の記事ものちのちあげます。こっちのほうが使えます。

以上です。サンプルゲームも作ってみてね。

あわせて読みたい
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】 ▼この記事を先に見ておきましょう▼ https://miyagame.net/basis-cs/ 当サイトではUnityでのサンプルゲームを作成することができます。Unityでゲームを作っていきましょ...

以上さぎのみや(@saginomiya8)でした。

Unity一回しか処理を行わない

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次