Teachers open the door but You must enter by yourself.

Open Media Lab.オープンメディアラボ

得点の表示

VR空間に文字を表示するボードを配置

  1. Horseの子に 3D Object/Text-TextMeshPro を生成、名前をStartBoardにする。
  2. Rect Transform でStartBoardの位置、大きさを調整
  3. TextMeshPro-Textで表示文字をStartにし、フォントサイズ、中央揃えなどを調整
  4. StartBoard に StartBoard.csという名前で以下のスクリプトを追記
    
    using UnityEngine;
    
    public class StartBoard : MonoBehaviour
    {
    	 void Start()
    	{
    		Destroy(gameObject, 5.0f); //5秒後に削除
    	}
    }

得点を表示するボードを配置

  1. StartBoardを複製して、複製先をScoreBoardという名前にする。
  2. ScoreBoard に ScoreBoard.csという名前で以下のスクリプトを追記
    
    using UnityEngine;
    using TMPro;
    
    public class ScoreBoard : MonoBehaviour
    {
    	public int score=0;
    
    	void Update()
    	{
    		if(transform.parent.position.z<1020){ //スコアを表示
    			GetComponent<TextMeshPro>().text=score.ToString();
    		}else{ //成績を表示
      			var text=
    				score==12? "Perfect!\n(12/12)":
    				score>=9? "Great!\n("+score+ "/12)":
    				score>=5? "Good Job!\n("+score+"/12)":
    				"Good Effort!\n("+score+"/12)";
    
    			GetComponent<TextMeshPro>().text=text.ToString();
    		}
    	}
    }
    
  3. Arrow.csにスコアを加算する処理を追記
  4. 
    using UnityEngine;
    
    public class Arrow : MonoBehaviour
    {
    	public float velocity=10f;
    	public float magnify=2f;
    	public bool flying=false;
    
    	public Horse horse;
    	public Transform bow;
    	public ScoreBoard scoreBoard
    
    	・・・(途中省略)
    
    	void OnTriggerEnter(Collider other){
    		var mato=other.gameObject;
    		if(mato.tag == "Mato"){
    			GetComponent<AudioSource>().Play();//的壊れる音
    			Destroy(mato);
    			scoreBoard.score++;
    		}
    	}
    }
    
This site is powered by
Powered by MathJax