unityでシューティングゲームっぽい何かを作ります。
まだまだ練習段階です。
とりあえず
①プレイヤーを動かす
②複数の敵の弾をランダムに動かす
③弾とプレイヤーの当たり判定を組み込む
この3つをやりたいと思います。
1.新しいプロジェクトを2Dで作成。
2.縦画面のシューティングにするのでSceneの隣のGameをクリックして
ゲームビューに切り替え、左上の画面設定でiPhone5 Tallを選択。
画面が縦画面になる。
3.使用する素材画像をプロジェクトビューにドラッグ&ドロップ。
4.自機ship1と背景画像bg1をシーンビューにD&D。
5.背景が一番奥、その次に自機が表示されるようにレイヤーを調整する。
インスペクタパネルのorder in Layerを1にする。
背景は0にする。
6.とりあえず一回実行してみる
こんな感じ
7.自機を動かすスクリプトを作る。
プロジェクトビューのcreate→C#script
名前をshipmoveにする。
8.自機を動かす処理を書き込んでいく。
////////////////////////////////
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class shipmove : MonoBehaviour {
float sx = 0; //x方向移動量を入れる変数
float sy = 0; //y方向移動量を入れる変数
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//左移動
if (Input.GetKeyDown (KeyCode.LeftArrow)) { //もし左キーが押されたら
this.sx = -0.1f; //移動量-0.1をセット。語尾にfを忘れると怒られる。
transform.Translate (this.sx, 0, 0); //移動させる処理
}
//右移動
if (Input.GetKeyDown (KeyCode.RightArrow)) {
this.sx = 0.1f;
transform.Translate (this.sx, 0, 0);
}
//上移動
if (Input.GetKeyDown (KeyCode.UpArrow)) {
this.sy = 0.1f;
transform.Translate (0, this.sy, 0);
}
//下移動
if (Input.GetKeyDown (KeyCode.DownArrow)) {
this.sy = -0.1f;
transform.Translate (0, this.sy, 0);
}
}
}
////////////////////////////////
実行してみると自機は動くけど一回押しただけでは1回動くだけで
押しっぱなしを検知していない模様。
あとthis.sy = -0.1f;の語尾のfを忘れるとエラーになるよ。
押しっぱなしを検知するにはInput.GetKeyDownではなく
Input.GetKeyを使うとうまくいった^^v
----------------------------------------
ー広告ー