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

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

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

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Unity

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

Q&A

2回答

3223閲覧

UnityでのC#コードについて

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Unity

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

0グッド

0クリップ

投稿2017/09/01 07:03

###前提・実現したいこと
Unityでのゲーム作りに慣れるために、インターネット上に上がっているゲームを製作していました。
しかし、そのサイトに記載されていたC# Sprictを入力したところ4つのエラーが出ました。
このエラーを解消して、学習をすぐに先へ進めたいです。どうかご協力お願いします。

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

Assets/Player.cs(24,9): error CS1547: Keyword `void' cannot be used in this context Assets/Player.cs(24,29): error CS1525: Unexpected symbol `(', expecting `,', `;', or `=' Assets/Player.cs(32,68): error CS1525: Unexpected symbol `1', expecting `,', `;', or `=' Assets/Player.cs(37,8): error CS1525: Unexpected symbol `rb2d'

###該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { // 変数の定義と初期化 public float flap = 550f; public float scroll = 10f; Rigidbody2D rb2d; // Updateの前に1回だけ呼ばれるメソッド void Start() {         // Rigidbody2Dをキャッシュする         rb2d = GetComponent<Rigidbody2D>(); } // シーン中にフレーム毎に呼ばれるメソッド void Update() { // ColliderのIs Triggerにチェック有のオブジェクトとの衝突を検出する関数 void OnTriggerEnter2D(Collider2D col) { // CountZoneのタグが付いたオブジェクトと衝突したとき if (col.gameObject.tag == "CountZone") { // ScoreスクリプトのAddScore関数に値を送信する GameObject.Find("ScoreGUI").SendMessage("AddScore", 1); } }         // xの正方向にscrollスピードで移動         rb2d.velocity = new Vector2(scroll, rb2d.velocity.y); // スペースキーが押されたら if (Input.GetKeyDown(KeyCode.Space)) {             // 落下速度をリセット             rb2d.velocity = Vector2.zero;             // (0,1)方向に瞬間的に力を加えて跳ねさせる             rb2d.AddForce(Vector2.up * flap, ForceMode2D.Impulse); } } }

###試したこと
プログラムもUnityも初心者です。非常に困っています。助けてください。

###補足情報(言語/FW/ツール等のバージョンなど)
言語はC#を使って、Visual Studio 2017 で記述しています。
参考にさせてもらっていたサイトのURLはこちらです。
http://tech.pjin.jp/blog/2015/07/08/unity%e3%81%a72d%e3%82%a2%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%92%e4%bd%9c%e3%82%8d%e3%81%86%e2%91%a1-%ef%bd%9e/

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

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

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

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

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

guest

回答2

0

C#では、関数(メソッド)の中で関数を定義することは出来ません。
OnTriggerEnter2D()Update()の外で定義してください。

投稿2017/09/01 07:09

fiveHundred

総合スコア9803

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

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

rsu

2020/01/05 10:49

これ
Zuishin

2020/01/05 10:57

できますよ。バージョンが足りないのでしょう。
Zuishin

2020/01/05 12:15

すみません。2017 年だったんですね。 アクティブに上がっていたので新しい回答だと思い、気づきませんでした。
guest

0

OnCollisionEnter2D()はUpdate ()に入れなくてもいつでも呼び出されます。なのでUpdate()からOnCollisionEnter2D()を別々にしてやればうまく行くと思います。

投稿2020/01/05 22:00

rsu

総合スコア75

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問