Green3dcg
(Green3dcg)
1
アクターがダメージをもらってデストロイされたら、リスポーンするという処理をしたのですが、拾ったアイテムの数がリセットされ0になります。あらゆる方法を試したつもりなのですが出来ず、教えていただければ幸いです。
こちらが主役のアクターがアイテムに当たったら、100ポイント入るという処理です。
それをウィジットで表示しています。
こちらがリスポーンの処理です。
Create Save Game Object を使ったり、変数をリスポーン時に渡そうと試みたのですが、なかなかうまくいきません。
何卒よろしくお願いいたします。
「セーブゲーム」または「ゲームインスタンス」を使用する必要があります。
コードはほぼ同じになります。
ゲーム インスタンスは、さまざまなプレイヤーとレベルにまたがります。
セーブゲームは再起動時にも機能します。
これが私のセーブゲーム101です
2 Likes
PS: もう 1 つの方法は、プレイヤーで coins 変数を公開し、スポーン中に設定することです。
2 Likes
LunaNelis
(ネリスさんMain)
4
ClockworkOceanさんの対応方法でおおむね問題ないですが、少し補足しますと
そのステージ内でのみカウントされれば良い数値であればGameModeに置いておけばOKです
別のマップに移動しても継続したい、ゲーム全体を通して維持したい数値であればGameInstanceに置いておくことになります。
さらに、ゲームを終了して再開しても維持したいというのであればSaveGameに設定することになります。
(この場合は維持というよりロードによる復元ですが)
キャラクターは死亡などで消えるものなので、所持品などはそれ専用のActorやGameInstanceのようなデータが残せる相手に分割管理するのがベストですね。
(主人公Actorと道具袋Actorという感じです)
1 Like
Green3dcg
(Green3dcg)
5
ありがとうございます!真似をしながらなんとかセーブをしようとしたのですが知識不足でうまくいきませんでした。しかし方向性が分かったので、セーブについて勉強しようと思います!
そして変数をインスタンスに書いて、キャストしてアイテムを数えたところ、うまく行きました!とりあえず前に進めるので、これで行こうと思います。
本当にありがとうございました!
1 Like
Green3dcg
(Green3dcg)
6
ありがとうございます!
おっしゃる通り、処理をインスタンスに書いたところうまく行きました!
使い分けが必要なんですね。
本当に助かりました。ありがとうございます!