見出し画像

Unityでこどもの絵をアプリゲームに〜趣味アプリ制作②〜Playerを動かしてみた

JABです(@zeroriderjab)!

最近充実しすぎて子どものゲームアプリをなかなか進められずにいましたが、頻繁に子どもたちに

ゲーム、どこまで進んだ〜?

って聞かれるようになってきましたので、平日休日ともに寝かしつけ完了後から自室に篭り、映画を見ながら制作を進めることにしました!

前回の記事⬇️⬇️⬇️

子どもが書いたモンスターを動かしてみた

ステージやオブジェクトの仮配置は終わったんですが、子どもたちはそれだけでは満足しないので・・・w

まずは動いているところを見せてあげよう!

ということで、メインとなるモンスター(Player)を動かせるようにしました。

今回も初めてづくしだったので、ググりながら少しずつエラーをなくしていきました。

動くようになったものは⬇️⬇️⬇️

・・・なぜかgifがアップロードできない・・・。

ということで、スクリプトだけ紹介しておきます。

今回はキャラのモンスターを動かす「PlayerController.cs」というものを作りました。

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

public class PlayerController : MonoBehaviour
{
   GameObject player;
   bool leftmove;
   bool rightmove;

   // Start is called before the first frame update
   void Start()
   {
       
   }

   // Update is called once per frame
   void Update()
   {
       
      if(leftmove){
          goLeft();
      }else if(rightmove){
          goRight();
      }else{
          transform.rotation = Quaternion.Euler(0,0,0);
      }
       
   }

   
   
   public void LeftButtonDown(){
       leftmove = true;
   }
   public void LeftButtonUp(){
       leftmove = false;
   }

   public void RightButtonDown(){
       rightmove = true;
   }
   public void RightButtonUp(){
       rightmove = false;
   }

   public void goLeft(){
       if(transform.position.x >= -8.0f){//はみ出さないためのX座標制限
           transform.position += new Vector3(-8.0f*Time.deltaTime,0,0);
           transform.rotation = Quaternion.Euler(0,20,10);
           Debug.Log("goLeft");
       }
   }

   public void goRight(){
       if(transform.position.x <= 8.0f){//はみ出さないためのX座標制限
           transform.position += new Vector3(8.0f*Time.deltaTime,0,0);
           transform.rotation = Quaternion.Euler(0,-20,-10);
           Debug.Log("goLeft");
       }
   }
}

現在のスクリプトはこんな感じです。

座標として変更していくんだ〜

と当たり前のことに感心しながらスクリプトを描いていきましたが、最初は全然動かず・・・。

結局動くようになるまで2日間(1日3時間程度)かかってしまいました。

問題となったところ

今回もやっぱり問題が出てきました。

それは、

移動し続けるとプレイヤーが延々と画面外を無双する

という事象。

これは当然と言えば当然で、座標を動かしていく上で、当初は何も制限をかけていなかったためでした。

これはググって簡単に解消できたのでよかった。

追記したコードは⬇️⬇️⬇️

if(transform.position.x >= -8.0f){//はみ出さないためのX座標制限

}

この条件分の中に、移動するためのコードを書くだけです。

次は・・・

キャラクターがジャンプできるようにしたいなぁと思います。おそらく地面との当たり判定とか、その辺が入ってくるんじゃないかなぁと思っていますが、そこはまたこれからググりながら調べていきたいと思います。

余談

毎日のように子どもたちにゲームの完成をせっつかれるので、今回はこの「プレイヤーが動くようになった」という状態で、Unity上で触らせてあげました。

おぉ!!すごいね〜!

って感動してくれてよかったw

自分が描いた絵がディスプレイ上で動くというだけでかなりの感動があるみたいで、私もその姿を見るとモチベーションが上がります。

実際のプレイ画面も子どもの絵のテイストをそのまま活かしたなんとも自主制作っぽい画面で、気に入っていますw

今後も時間を見つけて、制作を続けていきたいと思います!

スクリーンショット 2021-10-04 12.32.06

過去に作ったアプリ

https://pilot-training-app.studio.site/


サポートしていただけると嬉しいです!! Web関連、育児関連、ビジネス関連など情報を発信していくために使わせていただきます。