いまきたこうぎょう。

のんびり、ゆったりとスマホゲームを作ったり作らされたり。

皆さんこんにちわ。
Unity1週間ゲームジャムも終わり、ねこを伸ばしている今北工業です。
ゲームジャムで作ったゲームもブラッシュアップしてスマホでリリースしよかな。

というわけで、長らく続きを書いていなかった
10
新しいUnityIAPを触ってみた。その①~ボタンを作ってみる~

の続きです。


前回は、ボタンを作って表示するところでしたね。

◆実装してみよう

というわけで、今回は実装して、実際に課金処理をするところです。

まずはGoogleDeveloperConsoleとiTCにちゃちゃっと課金アイテムを登録しちゃいましょう。

3
Googleの場合は、ここから

2

こんな感じ。アイテムIDが超重要ですよ。Unity側のIAP Catalogと同じにしないと、購入処理で受け付けてくれません。

6
iTCの場合はここ。
同じアイテムだったら、GoogleもiTCもIAP CatalogとアイテムIDを同じにしとく必要がありますよ。(超重要なので2回いいました)


さて、OKですかね。

7
構成としてはこんな感じ。
スクロールにしなければ、scroll/listはいらないです。
8
marketオブジェクトには、marketっていうスクリプトを作っておきます。
あとで使います。
ゆぼクエで使ってるやつなので、皆さんには要らないオブジェクトとかもありますが無視してください。


そしたら、前回ではあとあと楽をするためにコードで一括で作っちゃったボタンですが、

1
今回はちゃんとボタンごとにProductIDを設定してみます。

ProductID → IAP Catalogから選択します。GoogleやiTCで作ったアイテムと同じIDにしてくださいね。

Button Type → PurchaseかRestoreを選択します。Purchaseは購入、Restoreは返金ですね。今回はPurchaseで。

On Purchase CompleteとOnPurcaseFailedはあとまわし。

TitleText,DescriptionText,PriseTextは、自動でアイテムのタイトルや説明、価格を表示するときに使います。
今回は使いませんでした。


no title
あと、IAPButtonにこんなスクリプトをひとつアタッチしておきます。
IDはテキストで作っちゃいましたが、publicなstringでもOKです。
要は、購入後、購入したアイテムをゲームに登録するためのアイテムIDを文字列で保存しておく場所です。

onPurchase.csの中身はこんな感じ。
    [SerializeField]
Text id;
[SerializeField]
Text t;
market m;
void Start() {
m = GameObject.Find("Canvas/market").GetComponent<market>();

}

public void onPurchaseComplete() {
m.onPurchaseComplete(id.text);
}
public void onPurchaseFailed() {

}
やってることは、market.csのonPurchaseComplete()にstringでアイテムIDを渡すだけ。
onPurchaseCompleteは、GoogleやiTCで購入手続きが正常に完了した際に呼ばれるコールバックです。

onPurchaseFailedは失敗したときの処理。

1
で、ボタンのCompleteとFailedにそれぞれの挙動を登録しましょう。


market.csの中身はこんな感じ。

    List<int> nums = new List<int>() { 20, 70, 120, 250 };
public void onPurchaseComplete(string id) {

ProductCatalog cat = ProductCatalog.LoadDefaultCatalog();
int i = 0;
foreach (var product in cat.allProducts) {
if (product.id == id) {
int old = General.gameData.Soul;
課金アイテム += nums[i];
userData.SaveGameData();
break;

}
i++;
}
}
Listで作っているのは、購入されたら登録されるアイテムの数。
stringでアイテムIDをもらってきて、ProductCatalogの中身からアイテムIDに一致するものがあれば購入完了。
アイテムを追加して、保存する。

これで終わり。
ほら簡単。

流れとしては、
1・購入するボタンを押す
2・UnityIAPがGoogleやiTCに購入処理を投げる
3・購入手続きが終わればonPurchCompleteが帰ってくる
4・購入したアイテムを追加する処理

ここまでで作ったのは、この中の1、3、4の部分。2の部分はUnityIAPが勝手にやってくれます。

返金処理のRestoreは、
9
ここをRestoreにすると返金ボタンになってくれます。まぁ簡単。


だいたいこんな感じでOKのはずです。
以前の課金まわりと考えたら、無茶苦茶楽になってますね。
ミリネコ2で課金やってみたんですが、数日ハマってた記憶があります。
Unityはとんでもない仕組みを作ってくれました。



「ブログのとおりやってもできないよ!」という方、なんとか頑張ってください。
「間違ってるよ!」という方、教えてください。
「課金システムできたけどぜんぜん課金されないよ!」という方、同類ですね。


こんな感じですかね。
長いことこの記事を書くのをサボってたわりには大したことのない内容ですみません。
ではまた。

	

	


おはようございます。
今北工業です。
私です。
覚えてますか?
「ゆぼクエどうなった!」のツッコミはひとまず置いといて。
何人かの方にテストをしていただいた結果、ちょっと大規模な改修が必要になったので…

◆Unity1週間ゲームジャムに参加したよ!

「ふざけんな何やってんだテメェゆぼクエつくれやゴルァ」
というアレはソレです。
本業のほうがやっと落ち着いたので、ゆぼクエのソースを眺めていたら、1か月ちかく経過したソースってわけわかんないですね。
というわけで、リハビリがてらUnity1週間ゲームジャムに参加することにしました。

https://unityroom.com/unity1weeks/4

ここですね。
「お題に沿って、1週間でゲームつくって皆で遊ぼうぜ」みたいな。
前にやった1週間チャレンジを皆でやろうっていう企画です。
今回は3回目。1回目、2回目は本業がふぎゃあああああってなってて参加できませんでした。
今回やっと参加できました。


今回のお題は「積む」です。

◆1日目

1日目は、企画と仕様検討。
積むっていうことで、わりといろいろ考えられますが、おおまかなゲーム性としては似通ってくるんじゃないかなと。
たまにはちょっと違うこともやってみたいなと思い、工業らしく「フォークリフトでパレットに乗った箱を積み上げていけばいいんじゃないか」と。
「積む」は二の次で、フォークリフト操作が楽しい感じのやつ。
はい。コンセプトの時点でダメなやつです。


とりあえずざっくりと思い付いたので、画面をぽちぽちと。

no title

フリー素材を使って、おおまかに。


今回は私にしては珍しく、BoxCollider2DとかRigidBody2Dとか使ってます。
珍しく使うので、使い方がいまいちよくわからんちん。

でも一応フォークリフトっぽく動くようになったよ。


◆2日目


なんか画面がダサい。
というわけで

1

フォークリフトを置いて、スライダーでアナログ操作ができるようにして、
パレットとオブジェクトを置いて。

Colliderとかめったに使わないので、パレットと設置場所の判定とかに難航。
そこで1日費やした。

◆3日目

やっぱり画面がダサいので、さらにフォークリフトの画像とかを探す。
そしたら、工場の画像でかわいいのがあった。
それにあわせて、仕方がないからフォークリフトもドット絵で作った。

4

にぎやかになったのでいったんツイートしてみたら、ねこバタさんが
「工場を積んでいくやつかと思った」


それだ


パレットに乗ったオブジェクトのあたり判定、ゲームオーバー判定にやたら難航していたので、
パレットを廃止して、工場を積み上げていくというゲームに変更。



5

工場を積み上げる感じに。



◆4日目

タイトル画面。
タイトルの決定にさらに難航。
もういいや適当で(駄目

6

さらに、前回の参加者のブログみてたら、「キーボード操作のほうがいいよ」「WSAD操作ができたほうがいいよ」みたいなことが書いてあったので、操作キーを増やした。
ついでに、操作方法を常に表示する感じ。
普通の人はフォークリフトなんて操作したことないからね。


9
あと、積み上げたらお金をもらえるようにして、お金をつかってアップグレードもできるように。


10

最終的なゲーム画面はこんな感じ。


6日目、7日目はいろいろあって作業できない雰囲気だったので、5日目で音楽入れて完成。提出。

フォークリフトで工場を積み上げるやつ。
こちらからどうぞ。

◆まとめ

1週間で作るということで、多少のバグはあってもいいじゃない的な楽な考え。
前回もやってたので、おおまかに何日目に何をすればいいのかってのがわかってたので、気が楽でした。

1週間といわず5日で作れた。っていうのは、非常に励みになりましたね。今後のあれやこれをしていくにあたって。

Unityでのゲームの作り方をすっかり忘れていたので、ほんとリハビリになりました。
詰めてやんなきゃいけないのは大変でしたが、楽しかったです。

ゲームが楽しいかどうかは…いまんとこ評価が微妙な位置なので微妙に楽しいっていう感じですかね。
いつかはオサレな雰囲気のゲームが作ってみたいなぁと思いながら、センスがないのでセンスを磨く旅にでないとですね。

また次回も参加できるようなら参加したいです。

ゆぼクエの作業に戻らねば…
しかし、この時期はやたらとねこを伸ばしたくなる時期でもあり…



それではまた。

皆様おはようございます。

◆ゆぼクエ!の公開停止につきまして

様々な方からご指摘を頂いておりますが、バグの嵐です。
作りながらある程度テストをしましたが、そこで気づけなかったバグが多く、見切り発車にもほどがありました。

Android、iOSともにいったん公開を停止し、きちんとテストをしてバグをつぶした後に再公開させていただこうと思います。


Android版は公開を停止しても、既にインストールされた方は遊べてしまいますが、課金はされないようお願い申し上げます。
また、Android版で課金していただいた皆様におかれましては、払い戻しをさせていただきます。

誠に申し訳ありませんでした。



◆再公開時期など

現在、本業のほうがかなりパニックになっており完全に負荷オーバーの状態なので、先ずは本業の立て直しを最優先にさせていただきます。
GWも何だかんだ動けない状態なので、GW明けから本業の立て直しをしつつ、少しずつきちんと余裕をもってテストとバグ潰しをしていきたいと思います。

再公開の時期については、6月後半を目途に動いていきたいと思ってます。
まあ忘れてしまっても構いません。








なんとも言い訳のしようもない状態で、本当に申し訳ありませんでした。
皆さまにおかれましては、ご迷惑とお手数をとらせてしまったことをお詫び申し上げます。

しばらくはアプリ開発ができそうもありませんが、今後ともよろしくお願い申し上げます。

↑このページのトップヘ