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

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

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

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

Q&A

解決済

1回答

573閲覧

クリアしたら画面切り替えの方法がわかりません

mi-saki

総合スコア12

Unity

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

0グッド

0クリップ

投稿2018/11/20 13:20

前提・実現したいこと

unityでブロック崩しを作成しています。
ブロックがすべて消えたら別に作成したgameclearスクリプトを実行してクリア画面に移動したいです

発生している問題・エラーメッセージ

Assets/ball.cs(25,4): error CS1525: Unexpected symbol `void'

該当のソースコード

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class ball : MonoBehaviour
{
public GameObject gameClear;
public int blockCt = 20;
Rigidbody rb;
Vector3 v;
// Use this for initialization
void Start()
{
//以下を追加
this.GetComponent<Rigidbody>().AddForce(
(transform.forward + transform.right) * speed,
ForceMode.VelocityChange);
rb = GetComponent<Rigidbody>();
rb.AddForce((transform.up + transform.right) * speed, ForceMode.VelocityChange);
}

}

// Update is called once per frame
void Update()
{
//ブロックを全て壊した時
if (blockCt == 0)
{
//ボールの動きを止める
GetComponent<Rigidbody>().velocity = Vector3.zero;
//GameClearScriptのWinメソッドを実行しGameClearの文字を表示
GameClear.SendMessage("Win");
//クリックしてタイトル画面へ
if (Input.GetMouseButtonDown(0))
{
SceneManager.LoadScene("start");
}
}
}

void OnCollisionEnter(Collision col)
{
//ブロックにぶつかるとブロックカウント-1
if (col.gameObject.tag == "block")
{
blockCt -= 1;
}
}
}
}

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

{}の対応がおかしくないでしょうか?
また、コードが似ていましたので【Unity2】uGUIでゲームオーバーとクリア画面を作成(後編)!SendMessage, Application.LoadLevel【ブロック崩し5】 - Unity(C#)初心者・入門者向けチュートリアル ひよこのたまごをご参考にしたのかと思いますが、いくつか書き間違いがあるようでした。

C#

1using UnityEngine; 2using System.Collections; 3using UnityEngine.SceneManagement; 4 5public class ball : MonoBehaviour 6{ 7 public GameObject gameClear; 8 int speed = 5; // Start内で使っている「speed」が抜けているようです 9 public int blockCt = 20; 10 Rigidbody rb; 11 Vector3 v; 12 // Use this for initialization 13 void Start() 14 { 15 //以下を追加 16 this.GetComponent<Rigidbody>().AddForce( 17 (transform.forward + transform.right) * speed, 18 ForceMode.VelocityChange); 19 rb = GetComponent<Rigidbody>(); 20 rb.AddForce((transform.up + transform.right) * speed, ForceMode.VelocityChange); 21 } 22 23 //} // これが不要 24 25 // Update is called once per frame 26 void Update() 27 { 28 //ブロックを全て壊した時 29 if (blockCt == 0) 30 { 31 //ボールの動きを止める 32 GetComponent<Rigidbody>().velocity = Vector3.zero; 33 //GameClearScriptのWinメソッドを実行しGameClearの文字を表示 34 gameClear.SendMessage("Win"); // 「GameClear」ではなく「gameClear」ではないでしょうか 35 //クリックしてタイトル画面へ 36 if (Input.GetMouseButtonDown(0)) 37 { 38 SceneManager.LoadScene("start"); 39 } 40 } 41 } 42 43 void OnCollisionEnter(Collision col) 44 { 45 //ブロックにぶつかるとブロックカウント-1 46 if (col.gameObject.tag == "block") 47 { 48 blockCt -= 1; 49 } 50 } 51} 52//} // これが不要

※投稿の際にはコード部分の上下の行に「```」を入れて、コード部分を挟んでいただくのがおすすめです。
これがないと、投稿後の文章では行の頭の空白が消されてしまい、非常に読みづらくなってしまうのです(今回のようなカッコの対応の異常も見つけにくくなってしまいます)...

投稿2018/11/20 16:34

Bongo

総合スコア10807

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

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

mi-saki

2018/12/18 13:07

エラーがなくなりました、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問