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

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

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

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

Q&A

解決済

1回答

296閲覧

エラーが出てしまいます

hanaoto

総合スコア13

C#

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

0グッド

0クリップ

投稿2019/02/05 08:09

編集2019/02/05 09:42

前提・実現したいこと

Unityで簡単なゲームを作っています。
以下のエラーメッセージが発生しました。

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

本に書かれている通り打っているのですがエラーが出てしまいます。
エラーメッセージ
canon.cs (62,9)error CS1547 keyword'void'cannot be used in this context

該当のソースコード

using

1using System.Collections.Generic; 2using UnityEngine; 3 4public class Canon : MonoBehaviour 5{ 6 public GameObject bullet; //砲台 7 public ParticleSystem particle; //パーティクルシステム 8 public Canvas title_canvas, game_canvas, finish_canvas; //GUI関係 9 bool end_flag = true; //終了フラグ 10 float time_d = 10f; //敵出現の間隔 11 System.DateTime last_dt; //最後に敵出現した時間 12 Rigidbody bullet_rb; //砲台のリジッドボディ 13 14 // スタート時の処理 15 void Start() 16 { 17 last_dt = System.DateTime.UtcNow; 18 bullet_rd = bullet.GetComponent<Rigidbody>(); 19 } 20 21 //敵出現と砲撃 22 void Update() 23 { 24 if (InFinished()) { return; } 25 System.DateTime dt = System.DateTime.UtcNow; 26 System.TimeSpan ts = dt - last_dt; 27 if (ts.Seconds > time_d) 28 { 29 CreateCube(); 30 last_dt = dt; 31 } 32 if (Input.GetKeyDown(KeyCode.Space)) 33 { 34 Fire(); 35 } 36 } 37 38 //入力値を元に砲台を回転 39 void FixedUpdate() 40 { 41 if (IsFinished()) { return; } 42 float x = Input.GetAxis("Vertical"); 43 float y = Input.GetAxis("Horizontal"); 44 Vector3 v = transform.rotation.eulerAngles; 45 v.z -= x; 46 v.y += y; 47 if (v.z < 0) { v.z = 0; } 48 transform.roration = Quaternion.Euler(v); 49 } 50 //砲台に敵が衝突したときの処理 51 void OnTriggerEnter(Collider collider) 52 { 53 if (IsFinished()) { return; } 54 if (collider.tag == "Enemy") 55 { 56 particle.transform.position = collider.transform.position; 57 particle.Play(); 58 GameOver(); 59 } 60 //ゲーム初期化 61 void Initial() 62 { 63 end_flag = false; 64 } 65 } 66 //敵出現の間隔を短くする 67 public void ChangeTime() 68 { 69 { 70 time_d -= 0.1f; 71 if (time_d < 1f) { time_d = 1f; } 72 } 73 //終了チェック 74 bool IsFinished() 75 { 76 Debug.Log(end_flag); 77 return end_flag; 78 } 79 //スタートボタンのクリック処理 80 void OnStartBtnClick() 81 { 82 title_canvas.enabled = false; 83 game_canvas.enabled = true; 84 Initial(); 85 } 86 87 //ゲーム終了時の処理 88 public void GameOver() 89 { 90 end_flag = true; 91 finish_canvas.enabled = true; 92 } 93 //敵キャラの生産 94 public void CreateCube() 95 { 96 float rr = Random.value * 50 + 50; 97 float ra = Random.value * Mathf.PI * 2; 98 float rx = Mathf.Sin(ra) * rr + 250; 99 float rz = Mathf.cos(ra) * rr + 250; 100 float ry = Random.value * 90 + 10; 101 102 GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); 103 cube.tag = "Enemy"; 104 cube.transform.position = new Vector3(rx, ry, rz); 105 cube.transform.localScale = new Vector3(10f, 10f, 10f); 106 107 Rigidbody rd = cube.AddComponent<Rigidbody>(); 108 rd.useGravity = false; 109 rd.isKinematic = false; 110 Renderer rd = cube.GetComponent<Renderer>(); 111 rd.material.color = Color.red; 112 113 MoveCube(rd); 114 } 115 //敵キャラを動かす 116 void MoveCube(Rigidbody rb) 117 { 118 float tx = Random.value * 200f - 100f; 119 float ty = Random.value * 600f - 300f; 120 float tz = Random.value * 1000f - 500f; 121 rd.AddTorque(new Vector3(tx, ty, tz)); 122 123 124 Vector3 p1 = transform.position; 125 Vector3 p2 = rd.transform.position; 126 Vector3 p3 = (p1 - p2); 127 rd.AddForce(p3); 128 } 129 130 //砲撃の処理 131 void Fire() 132 { 133 bullet.transform.position = transform.position; 134 bullet_rb.velocity = Vector3.zero; 135 bullet_rb.angularVelocity = Vector.zero; 136 vector3 v = transform.rotation.eulerAngles; 137 float rd = (v.y + 90) *Matyf.Deg2Rad; 138 float rd2 = (v.y + 10) * Matyf.Deg2Rad; 139 float dx = Mathf.Sin(rd); 140 float dz = Mathf.Cos(rd); 141 float dy = Mathf.Sin(rd2); 142 Vedtor3 nv = new Vector3(dx, dy, dz); 143 nv *= 1000f; 144 bullet_rd.useGravity = true; 145 bullet_rd.AddForce(nv); 146 147 } 148 149 } 150} 151 152 153### 試したこと 154 155本の確認 156 157### 補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

y_waiwai

2019/02/05 08:11

エラーメッセージを、そのまま提示してください。 また、このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
azuapricot

2019/02/05 08:13

ソースコードをマークダウンの中に貼ろうという努力は見えているのですが、 失敗しています。質問文を再編集してください。 ```ここに言語を入力 コード ``` ↑の枠の中のコードという文言を消してコードをペーストし、 「ここに言語を入力」という文言を消して使用言語を書いてください。今回だとC#?
PineMatsu

2019/02/05 08:13

ソースコードは```c#~```の~の部分に記述してください。見づらくて仕方がない。それから、どんなえらーなのか、エラーメッセージを記入してください。
azuapricot

2019/02/05 08:13

あとエラーメッセージがいないです
papinianus

2019/02/05 08:16

> 本に書かれている通り打っているのですが InFinishedがあるので、それは幻想ですね。bullet_rdとかも未宣言ですし、もう一度一行1文字ずつ、定規などを利用しながら虚心に見直すしかないです。
m.ts10806

2019/02/05 08:38

大体が思い込みで本来の記号ではなく自分が知ってる近い記号を入れがちですよね。 あとは全角とか。
guest

回答1

0

ベストアンサー

OnTriggerEnter関数の閉じカッコが無いです。
インデントは正しく保ちましょう。単純ミスを防げます。

投稿2019/02/05 09:49

kazto

総合スコア7196

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問