羊オブジェクトの移動と生成処理 クリックアイテムを動かそう | Unity入門の森 ゲームの作り方

羊オブジェクトの移動と生成処理 クリックアイテムを動かそう

Unity 放置インフレ系クリッカーゲームの作り方 (スマホ化対応)


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

前回は、売却ボタンの作成と、羊毛(Wool)の売却処理を実装しました。

前回の記事↓

アイテムの売却処理の作り方 クリックで生成したアイテム(羊毛)を換金する
前回は、羊から羊毛(wool)オブジェクトが出てくるようになりました。 前回の記事↓ 今回はその刈り取った羊毛(Wool)の売却処理を実装していきます。 Walletの作成 まず手持ちのお金を管理・表示するオブジェクト用意しましょう。 お金...

今回は羊オブジェクトの生成・移動処理をメインで作っていきます。


【Line登録者限定のプレゼントもあるよ!】

改めてクリッカーゲームのルール設定について

さて、もう5回目となりちょっとずつ要素がそろってきました。

ここで一つ、どのようなゲームにしていくのかもうちょっとだけ具体的に決めておきます。

クリッカーゲームと言えば、1クリック当たりの報酬(金額・今回で言うと羊毛(Wool))もお金を消費して増やすことが出来、どんどんと金額がインフレしていくのが特徴です。

今回は一風変わったクリッカーゲームとして

  • 購入することで羊をどんどん増やすことが出来る
  • 色違いの羊は色違いの羊毛が取れ、高く売れる
  • 羊毛を刈り取られた羊は裸になるが、一定期間で毛が復活してまた刈り取れるようになる

というルールにします。 すなわち

  1. 羊を購入して追加
  2. 羊をクリックして羊毛を溜める
  3. 羊毛を売却してお金を貯める
  4. より高い羊(色付き)が買えるようになる
  5. 1.へ繰り返し

のサイクルにしたいと思います。

羊オブジェクトの生成 クリックアイテムを作る処理

それでは、羊生成処理を作っていきます。

SheepGenerator作成

まず、「羊を生成」を役割とする「SheepGenerator」を作ってしまいます。

HierarchyでCTRL+SHIFT+Nでオブジェクトを新規作成し、スクリプトも新規で追加をします。

  • 名前:SheepGenerator
  • 新規スクリプト名:SheepGenerator

上記のように設定をし、

SheepGeneratorスクリプトを修正していきます。

変数sheepPrefabをSerializeFieldで宣言して、InspectorでSheepオブジェクトのPrefabをセット出来るようにし、CreateSheepメソッドでは、(とりあえず)sheepPrefabをInstantiate(生成)だけしています。

ただ、このままでは確認が出来ませんので、Update関数内で

if (Input.GetKeyDown(KeyCode.S)) とし、キーボードの「S」が押されたかどうかを判断し、押されている場合は

CreateSheep();

羊を実際に生成するようにしています。

では、保存をして、Unity Editor上、InspectorでAssets/Prefabs/Sheepプレハブをセットして、再生してみましょう。

Sキーを押すたびに羊が生成されます。

が、場所が同じ場所ですね。いきなり画面に表示されるのもそもそもかっこ悪いので、画面の外で生成して、移動するようにします。

ついでに、今は羊をクリックすると毛が刈られた絵に差し替わるのですが、ずっと刈られたままです。これも何とかしましょう。

羊の移動処理 画面の端から端までオブジェクトを動かすスクリプト

Hierarchyのsheepオブジェクトを選択し、InspectorからSheepスクリプトをダブルクリックして以下のように編集します。

では解説していきます。

まず、カット前のSpriteを保持するための変数 defaultSprite
移動速度用の変数 moveSpeedを用意しています。

次に、初期化用メソッド Initializeを用意して画像の初期化(毛がある状態に)と、初期位置のセットと、moveSpeedのセット(-1.0f~-2.0fの間のランダム)をしています。

そして、Startメソッド内では羊の最初の画像(毛がある状態)の退避と、用意した初期化用メソッド Initialize();を呼んでいます。

Updateメソッドでは、用意した移動速度用の変数moveSpeedを使って、羊オブジェクトの位置を移動させています。

また、この時 Time.deltaTimeをかけることで、フレームレートに移動速度が依存しないようにしています。

では、保存をして、UnityEditorで再生をしてみましょう。

最初からシーンに配置されているSheepオブジェクトも画面外から移動してきますし、Sキーを押すたびに生成されるSheepオブジェクトも画面外からランダムの即で移動してくるようになりましたね!

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

おさらいと次回予告

今回は羊オブジェクトの移動処理と生成処理を作りました。

次回はこの羊オブジェクトの初期データを作っていきます。

次回の記事↓

ScriptableObjectの使い方をマスター! 羊パラメータの作成
前回は、羊オブジェクトの生成・移動処理を作りました。 前回の記事↓ 今回は羊オブジェクトのパラメータを管理するオブジェクトを作っていきます。 羊パラメータの作成 ScriptableObjectの使い方をマスターしよう さて、ちょっとずつ画...


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

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