Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者40代後半中年中間管理職おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

Unityで作った落ちゲー作り方解説  その3 ブロックの操作

今回はブロックの操作に関する制御について解説する

 

f:id:Harukichi:20200521230608g:plain

 

〇操作方法

当ゲームでのブロックの操作については下記の3種類

1 左右移動 画面の左右スワイプ

2 落下   画面の下ヘのスワイプ

3 回転   画面をタップ

 

制御の仕方としては、画面を指でタップした位置と話した位置を比較して、X方向に増加していたら左、現状していたら左、Y方向にマイナス移動していたら落下としているのみ

 

実際のコードは下記の通り

//スワイプによる左右下移動//////////////////////////////////////////////////////
if (Input.GetMouseButtonDown(0))//画面をタップ
{

 //タップしたポジションを記憶
 TapStartPos = Input.mousePosition;

}
else if (Input.GetMouseButtonUp(0))//タップ終了
{

 //タップを終了した時の位置を記憶
 TapEndPos = Input.mousePosition;

 

 //開始と終了位置を比較
 float dir = TapEndPos.x - TapStartPos.x;
 float dirH = TapEndPos.y - TapStartPos.y;

 

   //Y方向に下がっていたら

 if (dirH < -100)
 {

  //落とせるところまで落とす

  while (IsCurrentGOExit[0] || IsCurrentGOExit[1])
  {
   MoveBlock(MoveDirection.DOWN);
  }
 }

 

   //右に増加していたら右に移動
 else if (dir > 30)
 {
  if (IsMoveRLEnable)
  MoveBlock(MoveDirection.RIGHT);
 }

   //左に増加していたら右に移動

 else if (dir < -30)
 {
  if (IsMoveRLEnable)//
   MoveBlock(MoveDirection.LEFT);
 }

 //タップされたのみの場合は画面の左右のどちらの半分かで回転方向を変える
 else
 {
  if(TapStartPos.x>540)
   RotateBlock(0);
  else
   RotateBlock(1);

}

 

はじめのうちは画面に配置したボタンで移動させていたが、試行錯誤の上、スマホらしい操作方法がいちばんしっくり来たので、この方法に落ち着いた

 

画面もすっきりしたし、制御方法も簡単

 

今日のところは以上