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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

1回答

2991閲覧

2秒後にシーン遷移を行いたい!

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

3クリップ

投稿2020/05/05 15:04

●やりたいこと
3しDシューティングゲームを作っています。
プレイヤーが死んだ後、叫び声を入れてからシーンを変更したいです。

●シーン変更のコード
if (hp <= 0)
{
SceneManager.LoadScene("dead");
}
こちらのコードでHPが0になった時にシーンを変更できる仕様です。
お願いします。

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using UnityEngine.AI; 6using UnityEngine.SceneManagement; 7 8 9public class PlayerManager : MonoBehaviour 10{ 11 12 //音楽について 13 //public AudioClip stepsound; 14 AudioSource audioSource; 15 Rigidbody rb; 16 public AudioClip playerdamage; 17 18 //PlayerUIManagerと連携 19 public PlayerUIManager playerUIManager; 20 //HPの設定 21 int maxHp = 100; 22 int hp; 23 //ダメージエフェクトの追加 24 public GameObject bloodImage; 25 26 27 void Start() 28 { 29 rb = GetComponent<Rigidbody>(); 30 audioSource = GetComponent<AudioSource>(); 31 //HPに関する記述 32 hp = maxHp; 33 34 } 35 36 void FixedUpdate() 37 { 38 //以下のキーが押された時にオウディオソースの曲を流す 39 //参考文献:https://qiita.com/OKsaiyowa/items/d1a131f6b3e356c19388 40 if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.RightArrow)|| Input.GetKeyDown(KeyCode.LeftArrow)) 41 { 42 audioSource.Play(); 43 } 44 //以下のキーが離されたらオウディオソースを止める 45 else if (Input.GetKeyUp(KeyCode.UpArrow) || Input.GetKeyUp(KeyCode.DownArrow) || Input.GetKeyUp(KeyCode.RightArrow)|| Input.GetKeyUp(KeyCode.LeftArrow)) 46 { 47 audioSource.Stop(); 48 } 49 //HPが0になったときにdeadシーンに移動 50 if (hp <= 0) 51 { 52 SceneManager.LoadScene("dead"); 53 } 54 55 } 56 57 //private void OnTriggerEnter(Collider ohter) 58 //{ 59 // Debug.Log("ぶつかったよPlayerManager"); 60 //} 61 62 void Damage(int damage) 63 { 64 hp -= damage; 65 if (hp <= 0) 66 { 67 hp = 0; 68 } 69 playerUIManager.UpdateHP(hp); 70 Debug.Log("Player残りHP:" + hp); 71; 72 } 73 private void OnTriggerEnter(Collider other) 74 { 75 Damager damager = other.GetComponent<Damager>(); 76 if (damager != null) 77 { 78 // ダメージを与えるものにぶつかったら 79 //animator.SetTrigger("Hurt"); 80 Damage(damager.damage); 81 audioSource.PlayOneShot(playerdamage); 82 Debug.Log("Damager効"); 83 bloodImage.SetActive(true);//PlayerhitスクリプトにbloodImageを渡す 84 //Destroy(bloodImage); 85 86 87 88 89 90 } 91 } 92 93 94 95} 96 97

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

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

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

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

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

cc_KH

2020/05/05 16:55

まずは自分で「unity 秒後」などで調べて試してください
退会済みユーザー

退会済みユーザー

2020/05/05 17:00

ご指摘ありがとうございます! SceneManager.LoadScene("dead"); こちらを SceneManager.LoadScene("dead", 2f); とやってみましたがエラーが出てしまいましたので、、、。
退会済みユーザー

退会済みユーザー

2020/05/06 10:46 編集

ありがとうございます! 試してみます! すみません こちら解決できそうにないので別の方法でやることにしました
guest

回答1

0

単純な方法でいいなら、シーンロードだけするメソッドを別にしてInvokeで叩く方法とかもいいかもです。
複数メソッドを用意するのがあれなら、別途Delay用のメソッドみたいなのを1個作っておくという手もあります。

cs

1 2private void Start(){ 3 Invoke("Test", 2f); 4} 5 6private void Test(){ 7 SceneManager.LoadScene("dead"); 8}

投稿2020/05/07 09:08

hogefugapiyo

総合スコア3302

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問