Unity(70年代風テニスゲーム)

Unity

1.3Dでプロジェクトを作成したら3dギズモを以下のように調整する

2.Cubeを新規に作成しWall1とリネーム。transformを以下のように設定する

3.Wall1を複製(Ctr+d)してWall2にリネーム。transformのyにマイナスをつける

4.カメラを調整しよう。背景色を単色にし遠近感をなくして見える範囲を調整している。

こんな感じになっていればOKだ

5.LeftPlayerの作成。
新規CubeをリネームしてLeftPlayerとする。transformは以下

6.RightPlayerの作成
LeftPlayerを複製(ctr+d)してRightPlayerとリネーム。トランスフォームのxを変更する

ここまででこんな感じになっていればOKだ。

7.Playerの動きの実装。プレイヤーが上下に動けるようにする。
左のプレイヤーはqキーで上、aキーで下。
右のプレイヤーはl(エル)キーで上,o(オー)キーで下に設定してみよう。
まずはEdit->Project Settingsを開く

Input->Axesから項目数を20にして新たなAxisを2つ増やす

8.LeftPの設定。LeftPlayer用の設定をしよう。新規に作成された2つのCancelのうちの上の方を開き以下のように入力する。

9.RightPの設定。同様に一番下にできたCancelを開いて以下のように設定する。

10.Playerスクリプトの作成。
新規C#スクリプトを作成し、Playerとリネームし以下のように作成する。

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

public class Player : MonoBehaviour
{
    public string keyName;
    Vector3 vec;
    
    void Start()
    {
        vec = transform.position;
    }

    void Update()
    {
        vec.y += Input.GetAxis(keyName);
        if(vec.y> 7f) {
            vec.y = 7f;
        }
        if (vec.y < -7f) {
            vec.y = -7f;
        }
        transform.position = vec;
    }
}

作成したPlayerスクリプトを2つのPlayerにアタッチする

LeftPlayerを開いてkeyNameを以下のように設定する。

同様にRightPlayerにはRightPを割り付ける

実行してみよう。左手でqまたはaを右手でlまたはoを押すことでプレイヤーが上下に動けば成功だ。

11.ボールの作成
新規Sphereを作成しBallとリネーム。transformは以下

BallにRigidbodyを付与し、以下のように設定する。
重力は使わないのでUse Gravityをoffにする

12.Ballスクリプトの作成
新規C#スクリプトを名前をBallで作成する。記述は以下

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

public class Ball : MonoBehaviour {
    void Start() {
        GetComponent<Rigidbody>().velocity = new Vector3(1f, 2f, 0) * 5f;
    }
}

Ballにアタッチして実行してみよう。
全く跳ね返らないことがわかる。

13.PhysicMaterialの作成
プロジェクトビューのCreateからPhysicMaterialを作成しBallとリネーム。
以下のように設定を変更する。

以下のようにBallにアタッチする。

実行してみよう。70年代風テニスゲームの動きが再現できた。

コメント

タイトルとURLをコピーしました