yamada_yoshiki Posted by

おはようございます!こんにちは!こんばんは!おやすみなさい!
山田です。

今回はUnityを使用してゲームを作っていきたいと思います!!!
Unityのインストール方法

アセットストアを使ってみる


新規プロジェクトを作成し、Unityを起動したらウインドウ→アセットストアの順にクリックしてください。

アセットストアで好みのキャラクターや背景などをダウンロードします。
アセットストア:Unityで使用できる3Dモデルの素材や画像などを購入できるショップ(無料のもある)

オブジェクトの配置


アセットストアでダウンロードした画像などはプロジェクトウィンドウAssetsファルダに保存されています。
Assetsフォルダから画像を選択し、矢印のようにプロジェクトウィンドウからシーンウィンドウドラッグ&ドロップしてオブジェクトを配置していきます。

右側のインスペクターウィンドは選択中のオブジェクトの設定画面です。
大きさ、位置、回転プログラム、レイヤーの順序などを設定できます。
オブジェクト大きさ、位置、回転画面左上の各ボタンでも設定することができます。

ヒエラルキーウィンドウに表示されているplayer-stand-2キャラクターオブジェクトの名前になっています。

シーンウィンドウ:キャラクターやその他のオブジェクトを選択して配置するために使用する
ヒエラルキーウィンドウ:オブジェクトの作成・複製・削除を行ったりできる
プロジェクトウィンドウ:モデル、テクスチャ、サウンド、シーンデータなどが表示されている
インスペクターウィンド:ヒエラルキーウィンドウやプロジェクトウィンドウのファイル情報を表示・修正することが可能

オブジェクトの移動


プロジェクトウィンドウ作成→C#スクリプトを選択するとC#のファイルが作成されるので

C#ファイルの名前をplayerに変更し、中身を書き換えます。

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

public class player : MonoBehaviour {
  // 初期速度
  float speed = 0;
  // 初期位置
  Vector2 startPos;

  // スタートメソッド
  void Start() {

  }

  // アップデートメソッド
  void Update() {
    // クリック時
    if (Input.GetMouseButtonDown(0)) {

      //クリック位置取得
      this.startPos = Input.mousePosition;

    // クリック解除時
    } else if (Input.GetMouseButtonUp(0)) {

      // クリック解除位置取得
      Vector2 endPos = Input.mousePosition;
      // スワイプ距離取得
      float swipeLength = endPos.x - this.startPos.x;
      // スワイプ距離を速度に変換
      this.speed = swipeLength / 800.0f;

    }

    // 移動設定
    transform.Translate(this.speed, 0, 0);
    // 減速
    this.speed *= 0.98f;
  }
}

まず、速度と初期位置の変数を宣言します。

スタートメソッド最初の1回のみ実行されるメソッドです。
スタート画面なんかの表示に使いますが今回は何もしません

アップデートメソッドゲーム実行中に繰り返し実行されるメソッドになるのでこちらにオブジェクトの移動処理を記述します。

クリック時のInput.GetMouseButtonDown(0)はマウスの左を意味しています。
Input.GetMouseButtonDown(1)ならミドルクリック
Input.GetMouseButtonDown(2)なら右クリックです。

Input.GetMouseButtonDown(0)の場合はスマホでタッチされた時にも実行されます。

まず、クリックされた時の位置startPos変数に格納します。
次に、クリックが解除された時の位置endPos変数に格納します。
そして、startPosのx座標 – endPosのx座標 =スワイプ距離として、速度に変換します。

transform.Translate(x座標,y座標,z座標);を使い、オブジェクトの移動位置を設定しています。
最後に速度を減速させることでゆっくりと止まるようにしています。

オブジェクトにプログラムを反映


作成したC#ファイルドラッグ&ドロップしてオブジェクトに反映させれば完了です。
画面中央上にあるスタートボタンを押してゲームを実行してみてください。

キャラクターが滑るように動くとおもいます。

最後に

今回はオブジェクトの配置と移動について紹介しました。

また、以前作成したAWSwebサーバーにゲームをアップしているのでどんな動きをするか実際に確かめてください。
(AWSは無料枠で遊ぶのに使っているので2021年になれば動いてないと思いますが、、、)

関連記事
AWSでWebサーバー構築をしたい part1 (VPC作成編)
Unityで作成したゲームをWebで実行する方法

今回作成したゲーム:http://takuan1019.tk/game1/