ズボラ応援ブログ始めました

Unity入門(1) スワイプ(ドラッグ)でオブジェクトを操作する

プログラミング

Unity初心者の方向けに、簡単なゲームを作りながら学べる入門シリーズです。

第1弾の今回は、プレイヤーがスワイプで操作するキャラクターを配置します。

スワイプして操作できるキャラを配置しよう

プロジェクトを作成する

Unityを開いてProject nameに任意の名前を入れ、2Dを選択してCreate projectを選択します。

キャラクターを配置する

キャラクターの画像を準備する

フリー素材のサイトから好きな画像をダウンロードします。

私はぴよたそさんからお借りしました。

キャラクターをSceneに追加する

キャラクターの画像をドラッグしてSceneへドロップします。

キャラクターを動かせるようにする

スクリプトファイルを作成する

Assetsのところで右クリックし、「Create」-「C# Script」を選びます。

スクリプトファイルに任意の名前を付けます。

スクリプトにコードを書く

作成したスクリプトファイルをダブルクリックで開き、下記のコードを書きます。クラス名だけ書き換えてくださいね。

using System.Collections;
using UnityEngine;
public class CatController : MonoBehaviour {
private Vector3 playerPos;
private Vector3 mousePos;
void Update()
{
playerControl();
}
private void playerControl()
{
if (Input.GetMouseButtonDown(0))
{
playerPos = this.transform.position;
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButton(0))
{
Vector3 prePos = this.transform.position;
Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - mousePos;
//タッチ対応デバイス向け、1本目の指にのみ反応
if (Input.touchSupported)
{
diff = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position) - mousePos;
}
diff.z = 0.0f;
this.transform.position = playerPos + diff;
}
if (Input.GetMouseButtonUp(0))
{
playerPos = Vector3.zero;
mousePos = Vector3.zero;
}
}
}

このスクリプトは、画面内の任意の場所をスワイプするとキャラが相対的に動くというものです。

引用元:https://qiita.com/Nicky/items/d5fa514243cb65a5d4d4

スマホの場合キャラが指で隠れてしまうと操作しづらいので、どこをタップしても反応するように実装してあります。

Input.mousePositionはマウスにもスワイプにも対応してるので、パソコンでも実機でも動作確認できます。

スクリプトをキャラに紐づける

作成したスクリプトファイルをドラッグしてキャラにドロップする

実行する

実行ボタンをクリックするとGameビューで動作確認できます。

画面をマウスでドラッグしてみてください。キャラが動きますよ~。

次の記事:Translateでオブジェクトを動かす

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