2024年6月21日スポンサーリンク本記事をご購入頂きありがとうございます!!この記事は下記のシリーズ(ガチャ機能、デッキ編成機能の実装解説)の続編となります。こんにちは、みじんこと申します。本記事では、Unityでのデッキ編成機能の実装方法を説明します。こんにちは、みじんこと申します。本記事では、Unityでのガチャ(パック)機能の実装方法を説明します。【基礎編】をやり終えてから、こちらの記事【応用編】を実施して下さい!※「片方の記事だけ終わってる!」って方もいるとは思いますが、両方の実装をしてからこちらの記事の実装に入るのが推奨です。(読み替えて出来るよ!って人なら大丈夫です。※ガチャとデッキ編成機能は独立した内容ではあるけど、上から順番に実装するのが推奨です。連携ここでは応用編を始める前に、コードの内容やゲームの実装状況を確認をしていくよ!基礎編で書いたコードが不安でも、この時点で記載しておくべきコードを連携するので安心して進めていきましょう。今回の実装にてカードの種類を追加する必要があるので、新しくカードのデータを作成していくよ。みじんここれらの16種類のカードを作るよ!!2【第二章】ガチャ機能の実装ここでは本記事でのメインの1つ「ガチャ(パック開封)機能の追加実装」の解説をしていくよ!基礎編にてガチャ機能のベースは出来ているので、主にカードパックのショップ機能を実装していきます。ショップとパック開封シーンの連携4-1.選択したパックを表示させる4-2.選択したパックのリストのカードを生成させる4-3.パック開封後に追加でパックを生成させる4-4.パック購入数の紐付けここを理解しながら進めれば自力で色んなガチャ機能も実装できるようになるはずなので、ぜひ理解しながら進めてみてね!!みじんこ実装のイメージはこんな感じ。【第六章】デッキリスト機能の実装6-1.デッキリスト画面のUI作成6-2.デッキリストの保存機能の実装6-3.デッキ毎のリストの保存6-4.バグ修正6-5.リセットボタンの設定デッキ編成機能はカードゲームにおいて必須の機能なので、しっかり理解しながら進めてみてね!!みじんこ実装のイメージはこんな感じ。デッキリストデッキ編成画面4【第七章】ホーム画面の実装ここではガチャ機能とデッキ編成機能のシーンを行き来出来るように、ホーム画面を作成していくよ!ホーム画面は全然難しくないけど、ゲームを作る上で必ず作るものなのでやり方を覚えておくといいよ!みじんこ実際に作るホーム画面のイメージはこんな感じ。5【第八章】ガチャ機能とデッキ編成機能の連携ここでは今まで作ってきた、ガチャ機能とデッキ編成機能が紐づくようにしていくよ!具体的に言うと、ガチャで手に入れたカードでデッキ編成出来るようになる。これを応用すれば、そのデッキを使ってバトルで使用する。理解しながらやっていきましょう!!3【プラスα】カード詳細パネルの実装この章ではカードをクリックした時にそのカードの効果が表示される処理を実装していくよ!デッキ編成画面や、パック開封後にカードをクリックした時にそのカードの効果やカード名を表示させるようにしていくよ!みじんこ実装のイメージはこんな感じ。この辺りで本記事の全体概要説明は終わりです!!結構ボリュームがあると思うので、自分のペースでゆっくり進めてみてね!わからない部分が出てきたらコメントをくれれば出来るだけ返信するので、気軽に聞いてくださいな。下記の「バトル機能の実装解説記事」についても併せて購入したい!!って方はセット価格でよりお得に購入出来るので、このタイミングで一緒に購入頂くのがおすすめです。・大学2年の時に「ゲームが作りたいー!!」って思ったのに、ゲームの作り方を解説してるサイトがことごとく何言ってんのか分かんなくて挫折した。・数年な時を経て「だったら俺が完全初心者にも超わかりやすいサイトを作ってやんよ!」って事で、初めてゲームを作ろうとしてる方向けに解説記事を書いてるよ。_)m一旦、別の記事に同じ内容のものを掲示するので、そちらの記事を参照いただけると幸いです。デジタルでTCGを作ってみたくてネットで調べてたところ、みじんこさんの記事を見てとても参考になりました。応用編に入る前に一箇所だけできていないところがあって対策を聞きたいです。Deckのカードの移動の際にクリックをしたまま動かすときカードが見えなくなります。StockPanelからDeckPanelには移動できます。スクリプトはサブスクを購入して確認しましたが間違いはなさそうです。́∀`)>Deckのカードの移動の際にクリックをしたまま動かすときカードが見えなくなります。動かした瞬間にカードオブジェクトが破壊されてるってことですかね??もしくはオブジェクトはあるけど、見えなくなる。AM解答ありがとうございます。オブジェクトが破壊されていないか確認して見ます。AMユズさん、コメントありがとうございます!敵AIについては自分もあまり知識がないもので、現時点では書く予定はないですね。(恐らく「全部の行動の評価値を計算して、一番評価が高い行動をする。」みたいなことになるんだとは思いますが、記事が書けるほど理解出来てないです。PMnaoさん、コメントありがとうございます!こちらの応用編の記事はデッキ編成とパック開封機能の解説記事なので、バトルするところまで具体的には書いていません。作成頂いたバトルシーンに、その方法でデッキリストを連携すれば、作成したデッキでバトルすることは可能です。PMこちらの応用編も終了し、現在バトルシーンとの結合作業をしています。新たにBattleManagerとBattleCardMovementというスクリプト、クラスを作成しをれぞれにバトルシーンで使っていた、GameManagerとCardMovementをコピペし辻褄が合うように修正しました。バトルシーンで使用していたほかのスクリプトは必要に応じて修正、追記しながら追加し、既存のスクリプトも修正しました。ものになったり、デッキ編成ではすべてのカードの枚数がId0のものと紐ずいていて、移動した後はId0のカードに変化してしまいます。バトルシーンでは出せる判定のカードにも触れないなどのバグが発生しています。現在はバトルシーンとデッキ編成の連携は行っておりません。それぞれが正しく動いてから、連携しようと考えています。バグ修正を試みていますが、なかなか見通しが立たないので、他に何か良いバトルシーンの追加方法があれば教えていただけると幸いです。PMnaoさん、返信遅くなってすみません。確かに「cardId」と「cardID」の表記が混じっていて非常に良くなかったですね。記事の方は整合性が取れるように一通り直しました。AM無事にデッキ・パックの実装を作ることができました。ありがとうございます。PM初めまして!ガチャ機能を付けたくて苦悩していたところあなた様の記事を見つけ無事実装することが出来ました。いろいろな記事や動画を参考にしていましたが、ここの記事が一番わかりやすく助かりました。PM黒蝶美羽さん、はじめまして!コメントいただきありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。みじんこの徒然ブログ。