質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

4762閲覧

Unity2D アニメーション遷移しようとしたら、オブジェクトが消えてしまう

michael-ilcsy

総合スコア180

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2018/09/09 04:05

編集2022/01/12 10:55

unity初めて一週間ほどのプログラム初心者です。
今回unityの2dシューティングのチュートリアルでゲームを作っています。はじめてのUnity 2Dシューティング

今回エネミーのHP、弾の攻撃力、アニメーションの追加を参考にして作っていたのですが、
プレイヤーにもHPをつけたいと思い、また被弾時には開始時にもある無敵状態を実装しようと思いました。

↑のページの「11.1 HP(ヒットポイント)と攻撃力(power)の実装」を参考にプレイヤーにHPを持たせることはできた(ちゃんとHPも減る)のですが、無敵がないと連続で食らってしまうので
「11.2 ダメージを受けた時の表現」と「11.3 プレイヤーの無敵時間」を参考に同じように無敵への遷移を作ったら、
被弾時に無敵状態のアニメーションに遷移しようとすると40フレーム前後でプレイヤーのオブジェクトが消えてしまいます。

その際無敵時の点滅も描画されておらず、無敵状態もありません。
ゲームオーバー画面は出ないので、自作スクリプト外でなにかが起こっていると思うのですが皆目見当がつきません。

試したこと

トリガーを呼ぶときに何か起こっているのかと思い、下記画像のようにデフォルトの遷移で試してみましたが同じように消えてしまうので
トリガーではなく遷移で何かが起こっているのかと思います

どこをどうしたらいいのかさえわからない状態なので、解決方法とまで行かなくても、問題解決のためにどういうことをすればいいのか等教えていただけると幸いです。

9/10 17:10 追記:
オブジェクトが消えたというのはヒエラルキーから消えたということです。

試したこと
・スプライトレンダラーを最初と最後のフレームでオンにした
・トリガーではなくscriptからanimator.Playから呼び出すと瞬時に消えた

9/10 19:25 追記:

試したこと
・PlayerのOnTriggerEnter2Dは一回しか通っていない(HPが減ることによる消失ではない)
・アニメーションだけのオブジェクトを配置してみると消えなかった

・一行ずつデバッグしてみると、ここの9.1のDestroyArea(範囲外に出たオブジェクトをDestroyするためのエリア)のOnTriggerExit2Dを通っていたせいでオブジェクトが消えていました。

→ただなぜここにアニメーション遷移のときだけ入るのか不明。
現在調査中ですが、ピンとくるものがあればお教えいただきたいです。

通常状態から無敵状態への遷移
通常状態から無敵状態への遷移
無敵状態から通常状態への遷移
無敵状態から通常状態への遷移

補足情報(FW/ツールのバージョンなど)

unity 2018.2.5f1 personal

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

リンク先の「図11.13:」で、60フレーム目(1:00秒時点)のSprite Renderer.Enabledがオフになっていますが、これをオンにしてみるとどうですか?

(余談ですがオブジェクトが消えたと言っても、「オブジェクトが消滅した(=GameObjectが存在しない)」のと「画面上に表示されていない(=Sptireの描画がオフになっている、画面外にいる、とても小さい etc)」は違います。プレイ中にヒエラルキーを見るとどちらなのか分かりますので、解決しないようなら確認して追記してもらえると助かります)

投稿2018/09/10 04:12

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

michael-ilcsy

2018/09/10 08:07

0と60フレームのスプライトレンダラーをオンにしましたが、ダメでした。その他やってみたこと等追記しましたので、もしよければご覧ください
sakura_hana

2018/09/10 09:33

新しいオブジェクトを作成、アニメ関係のコンポーネントだけ追加して再生 →消滅するならアニメ周りが原因です。再生しているAnimationClipのスクリーンショットを載せて頂けますか? (アニメからオブジェクトを消すってまずやらないし出来ないとは思うのですが……) →消滅しないならスクリプトが予期せぬ動きをしています。 (多分想定外のオブジェクトにぶつかってHPが減って消滅処理してるんじゃないかなーと思います)
michael-ilcsy

2018/09/10 10:30

アニメだけのオブジェクトが消えなかったことから、原因ではないと思い込んでいたスクリプトで一行ずつデバッグしてみたところ、原因が判明しました。 ただなぜそれが起こるのかまだわかっていない状態なので、もしよろしければ追記をご覧いただいて、ピンとくるものがあればお教えいただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問