▼そのUnityの作業、依頼しませんか?
エラー・つまずき

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

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

~~本当は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を使う

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

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

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...

以上さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 明日からも一生無双でやったりましょう。

ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


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