にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング 箱を積み上げるゲーム(7)カメラと射出の位置変更

(注意)
この連載は、ある程度ゲームを作ったことある人の
ためのものです。「アタッチ」とか「C#スクリプト
の作成」とか「カメラアングルの変更」とか、その
レベルの話は
省略しています。よろしくお願いしま
す。
  

www.nsnq.tech

 


前回の続きです。

積んでいくと、カメラの位置が上へ。そして、射出(Gene)
も一緒に上へ動いていくようにしましょう。

メインカメラの取得と、その動かし方はいろいろなゲームの
参考になるかな?と思いますので。

(GameCの改変です 赤字が追加分です。)

    //インスタンス用
    public GameObject blk;

    //スコア
    public int Score = 0;

    //フラグ
    public int flag = 0;

    //スタート位置
    Vector3 stPos;

    //メインカメラ本体
    private GameObject MCamera;

    // Start is called before the first frame update
    void Start()
    {
        //スタート位置を取得
        stPos = transform.position;
    
        //カメラを発見する
        MCamera = GameObject.Find("Main Camera");
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.Space)&&flag==0)
        {

            //オブジェクトを生成する
            Instantiate(blk, new Vector3(transform.position.x, transform.position.y - 1, transform.position.z), Quaternion.identity);

            //フラグを立てて
            flag = 1;

            //スコアを加算する
            Score += 1;

            //高さを加算する
            stPos.y += 1;
        }

        //射出の左右の動き
        transform.position = new Vector3(Mathf.Sin(Time.time) * 4.0f + stPos.x, stPos.y, stPos.z);

        //メインカメラの位置の更新
        MCamera.transform.position = new Vector3(0, stPos.y+5, -12);
    }

f:id:koharuwest:20200217223956p:plain

f:id:koharuwest:20200217224003p:plain


あとは、音が出たりスコアが出たり。

あと、ブロックが全部消えたらカメラや射出位置も
リセットされるようにしたほうがいいですね。

あと、2回くらいで完成しそうです!


質問があればDMやらコメントをお願いします。

それではよきプログラミングライフを!
またね。