TksLab

IT系ブログ

【Unity】3D射的ゲームを作ってみる①(一定時間で消える的を作る)

スポンサーリンク

それではUnityでゲームを作って行きたいと思います。

1本目ですからね、3Dで簡単に作れるゲームはないかなと考えました。

 

「射的」にしました!(笑)

ひとまずは「PCで動くゲーム」を作ります。

※本当はスマホアプリ作りたいですが、それはまたの機会に。

 

まずは新規プロジェクトを作成します。

 

準備ができたら、地面を作って行きます。

ヒエラルキーウインドウでPlaneをCreateして、以下のよう配置します。

f:id:tkslab:20190109140621p:plain

※オブジェクトを追加したり、スクリプトやインスペクターウインドウを編集した時にシーンに「*」マークが付きますが、編集中ということです。「Ctrlキー+Sキー」などでこまめに保存しましょう。

f:id:tkslab:20190111224616p:plain

 

カメラの位置を合わせるのが難しいですね。

そんな時は・・・

ヒエラルキーウインドウでカメラオブジェクトを選択して、上部メニューの「GameObject>Align With View」を押すと、カメラ位置をシーンビューで表示している位置と同じにすることができます。

f:id:tkslab:20190109140919p:plain

 

次に、的(まと)を作って行きます。

的はランダムな場所から現れて、3秒で消える仕様にします。

以下のように作成していきます。

 

1.ベースとなる的を作成

1-1.ゲームオブジェクト作成

・ヒエラルキーウインドウでCubeをCreateして、位置、サイズを調整します。

 オブジェクトの名前は「Target」にリネームします。

f:id:tkslab:20190109154323p:plain

 

1-2.スクリプト作成

・プロジェクトウインドウでScriptsフォルダを作成します。

・ヒエラルキーウインドウで「Target」を選択して、インスペクターウインドウのAdd Componentボタンを押して、虫眼鏡の入力欄にスクリプト名(ここでは「TargetScript」とします)を入力して、New Script>Create add Addをクリックします。

・プロジェクトウインドウにできたスクリプトはScriptsフォルダに入れておきましょう。

 

2.ランダムで出現する的を作成

オブジェクトを複製する機能であるプレハブを作成します。

2-1.プレハブ作成

・プロジェクトウインドウでPrefabフォルダを作成します。

 ・1-1で作ったTargetをPrefabフォルダにドラッグします。プロジェクトウインドウ側のTargetは削除してしまって良いです。

 

2-2.プレハブ用オブジェクト作成

・ヒエラルキーウインドウでCreate Emptyでオブジェクトを作成して「TagetFactory」にリネームします。

 

2-3.スクリプト作成

・ヒエラルキーウインドウで「TargetFactory」を選択して、インスペクターウインドウのAdd Componentボタンを押して、虫眼鏡の入力欄にスクリプト名(ここでは「TargetFactoryScript」とします)を入力して、New Script>Create add Addをクリックします。

・プロジェクトウインドウにできたスクリプトはScriptsフォルダに入れておきましょう。

・インスペクターウインドウからアクセスできるように以下のように「TargetFactoryScript」を編集します。

(「public GameObject target;」を追加します。)

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

public class TargetFactoryScript : MonoBehaviour
{
    public GameObject target;
    // Start is called before the first frame update
    void Start()
    {

    }
    
    // Update is called once per frame
    void Update()
    {

    }
}

 


・インスペクターウインドウの「Target」にプレハブのTargetをドラッグします。

f:id:tkslab:20190109155805p:plain

 

 ・3秒ごとに消えたり、現れたりするように以下のように「TargetFactoryScript」を編集します。

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

public class TargetFactoryScript : MonoBehaviour
{
    public GameObject target;
    // タイマー
    public float timeOut;
    // Start is called before the first frame update
    void Start()
    {
        // メソッドをリピートする
        InvokeRepeating("CreateTarget", 0f, 3f);
    }
    
    // 的を生成する
    void CreateTarget()
    {
        // インスタンスを生成
        GameObject newTarget = Instantiate(target, new Vector3(Random.Range(-2f, 2f), transform.position.y, transform.position.z), transform.rotation);
        // 時間経過で削除する
        Destroy(newTarget, timeOut);
    }
    // Update is called once per frame
    void Update()
    {

    }
}

 

timeOutはインスペクターウインドウで3秒にします。

f:id:tkslab:20190109193028p:plain

 

とりあえずこれで的ができました。

再生ボタンを押すと、的が表示されてますね。

f:id:tkslab:20190109191125p:plain

 

続きは次回にします。