心理サイエンス応用演習1-08

前回授業へのコメント
 先週あたりから、結構難しくなって来ていますが大丈夫でしょうか。大変だとは思いますが、UnityやVRなどの新しいツールで、心理学はもっとエキサイティングな分野に生まれ変われるのではないだろうか?という期待もあります。この授業が、なにか新しい研究が始まるきっかけになれば良いと思います。

UIを作成する
今日はUI(ユーザーインターフェース)を作成します。UnityのUIは、VR上での表示にも対応するなど大変高機能なのですが、そのぶんなかなかにややこしい構造で、自分もあまり得意ではありません。ここでは、簡単なゲーム作成を通して、UIの作り方を学びます。プログラムは少々複雑になりましたが、これをベースにして自分で改造して動作を理解していただければと思います。下記に、参考になりそうなリンクを作成しておきます。
UIの作り方シーンのロード方法衝突時の処理

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;               //UI表示に必要
using UnityEngine.SceneManagement;  //シーンのロードに必要

public class showUI : MonoBehaviour
{
    public Text text1;  //時間用テキスト
    public Text text2;  //スコア用テキスト
    public Text text3;  //メッセージ用テキスト

    public int score =0;    //スコア用変数
    float elapsed=0f;       //経過時間

    // Start is called before the first frame update
    void Start()
    {
        text3.text = "Start!";  //メッセージを初期化
        elapsed=0f;             //経過時間初期化
    }

    // Update is called once per frame
    void Update()
    {
        elapsed = elapsed + Time.deltaTime; //経過時間を計算

        text2.text = "Score:" + score;                      //スコアを表示
        if (score < 5)
        {
            text1.text = "Time:" + elapsed;   //経過時間を表示
        }

        if (elapsed > 1f) {   //1秒経過したらメッセージ削除
            text3.text = "";
        }

        if (score > 4) {                //スコア5でゴールのメッセージを表示
            text3.text = "Goal!";   
        }

        if (gameObject.transform.position.y < -5f) {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name); //現在のシーンをロード
        }
    }

    void OnTriggerEnter(Collider other)
    {
        Debug.Log("Hit:" + other.gameObject.name);
        score++;                            //スコアに1追加
        Destroy(other.gameObject, 0.5f);    //衝突したものを削除
    }

    public void reload()   //ボタン押下時の処理
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name); //現在のシーンをロード
    }
}


リアクションの記入
課題が終わった方は、下記アドレスから3日以内にリアクションを登録してください(リアクションは出欠記録を兼ねています)。
心理サイエンス応用演習1リアクション