Cou氏の徒然日記

ほのぼの日記ブログです。

Unityで遊ぼう その5 (スクリプト制御)

最初に作ったものであとやれそうなのは、文字の表示とかですかね。

 

…ということでカウンタ設置で文字表示を練習してみることに。 

Hierarchyウインドウで [UI]>[Text] を選び、テキストオブジェクトを追加。

あとは前回のスクリプトにクラスを追加して、カウンタの変数を追加して、それをテキストオブジェクトに追加!

 

…と思ったらTextオブジェクトが見つかりません」エラーに。

あれっと思いましたが、

using UnityEngine.UI;

の行を追加がなかったのが原因ですね。

追加するオブジェクトによってはusingの定義を追加しないとダメなのをうっかり忘れていました。

 

あとついでに10回に一回、ちょっと大きめの金色のボールが出るように変更。

うん、簡単ですね。

 

f:id:coublood:20200430175216p:plain

f:id:coublood:20200430195527p:plain



Unityで遊ぼう その5

そろそろ新しいプロジェクトで新たなオブジェクト制作ですかね。

 

参考

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

public class Ball1Script : MonoBehaviour
{
    public GameObject Ball1Prefab;
    public GameObject Ball2Prefab;
    public GameObject BallCounterPrefab = null;
    public int ballCount = 0;

    // Start is called before the first frame update
    void Start()
    {
        Text ballCounterText = BallCounterPrefab.GetComponent();
        ballCounterText.text = "Ball Count : " + ballCount;
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // マウスが左クリックされたら...

            // カウントアップしてテキストを更新
            ballCount += 1;
            Text ballCounterText = BallCounterPrefab.GetComponent();
            ballCounterText.text = "Ball Count : " + ballCount;

            if (ballCount%10 == 0)
            {
                // 10回ごとに金色のボールを出す
                if (Ball2Prefab != null)
                {
                    GameObject ball = GameObject.Instantiate(Ball2Prefab);
                }
            }
            else
            {
                // 上記以外
                if (Ball1Prefab != null)
                {
                    GameObject ball = GameObject.Instantiate(Ball1Prefab);
                }
            }
        }
    }
}