LoginSignup
0
0

More than 3 years have passed since last update.

ひとつのスクリプトで多数のオブジェクト管理する

Posted at

オブジェクトごとにスクリプトを生成する方法ではオブジェクト間(スクリプト間)での値のやり取りがとても面倒くさい。
そのため、ひとつのスクリプトで多数のオブジェクトを管理する方法を記載する。
まずいつも通り
- Crate Emptyで空のオブジェクト生成
- Input Field生成
- Button生成
を行う。Create EmptyしたGame Objectは名前をAdminにしておく(何でもよいが分かりやすくするため)。
singlescript_hierarchy.png

AdminオブジェクトでAdd ComponentしてNew Scritpを生成する(スクリプト名は今回はAdminScriptとする)。
以下のようにアタッチする。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// これ追加忘れずに
using UnityEngine.UI;
public class AdminScript : MonoBehaviour
{
    // publicにしないとダメ
    public InputField input_field_id;
    // 入力した文字列保存用
    private string input_txt;
    // input fieldでの入力判定
    public void InputID()
    {
        input_txt = this.input_field_id.text;
        print(input_txt);
    }
    // ボタンが押された時の処理
    public void LoginButtonPush()
    {
        if (input_txt == "abc")
        {
            print("正解です。");
        }
        else
        {
            print("不正解です。");
        }
    }
}

Adminオブジェクトのスクリプト内のメンバ変数input_filed_idにInputFIledオブジェクトを対応付けする。

singlescript_setinputfiled.png

インプットフィールドのオブジェクトを設定する。
singlescript_onendedit.png
singlescript_inputfieldfunctionsetting.png

ボタンのオブジェクトを設定する。
singlescript_onclick.png
singlescript_buttonfunctionsetting.png

これで実行してinputFieldにabcを入力してButtonを押すと"正解です。"と出力され、それ以外を入力した場合は"不正解です。"と出力される。
singlescript_result.png

このように、Adminオブジェクトに対応させたAdminScriptひとつでインプットフィールドとボタンのオブジェクトが操作できるようになる。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0