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

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

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

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

Q&A

解決済

1回答

3438閲覧

機能`ローカル関数`はC#4では対応できません。7.0以上の言語

nhjlauzaxa58

総合スコア11

Unity

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

0グッド

1クリップ

投稿2018/07/13 07:11

初心者です。「UnityではじめるC#4」という本を片手に脱出ゲームのスクリプトを組んでいます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour
{

//定数定義:壁方向 public const int WALL_FRONT = 1; //前 public const int WALL_RIGHT = 2; //右 public const int WALL_BACK = 3; //後 public const int WALL_LEFT = 4; //左 public GameObject panelWalls; //壁全体 public GameObject buttonMessage; //ボタン:メッセージ public GameObject buttonMessageText;//メッセージテキスト private int wallNo; //現在の向いている方向 // Use this for initialization void Start() { wallNo = WALL_FRONT; //スタート時点では前を向く } // Update is called once per frame void Update() { //メモをタップ public void PushButtonMemo(){ DisplayMessage("エッフェル塔と書いてある。"); } //メッセージをタップ public void PushButtomMessage(){ buttonMessage.SetActive (false); //メッセージを消す } //右(>)ボタンを押した public void PushButtonRight(){ wallNo++; // 方向を1つ右に // 「左」の1つ右は「前」 if (wallNo > WALL_LEFT) { wallNo = WALL_FRONT; } DisplayWall(); //壁画面更新 } //左(<)ボタンを押した public void PushButtonLeft() { wallNo--; // 方向を1つ左に // 「前」の1つ左は「左」 if (wallNo < WALL_FRONT) { wallNo = WALL_LEFT; } DisplayWall(); //壁画面更新 } //メッセージを表示 void DisplayMessage(string mes) { buttonMessage.SetActive(true); buttonMessageText.GetComponent<Text> ().text = mes;

}

//向いている方向の壁を表示 void DisplayWall() { switch (wallNo) { case WALL_FRONT: panelWalls.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f); break; case WALL_RIGHT: panelWalls.transform.localPosition = new Vector3(-1000.0f, 0.0f, 0.0f); break; case WALL_BACK: panelWalls.transform.localPosition = new Vector3(-2000.0f, 0.0f, 0.0f); break; case WALL_LEFT: panelWalls.transform.localPosition = new Vector3(-3000.0f, 0.0f, 0.0f); break; } } }

}

この中の
//メモをタップ
public void PushButtonMemo(){
DisplayMessage("エッフェル塔と書いてある。");
}

PushButtonMemoの部分で「CS8025 機能ローカル関数はC#4では対応できません。7.0以上の言語バージョンをお使いください。」と出てきます。
スクリプト作業をしているとこのエラーがしょっちゅう出てきます。
プロパティのビルド部分で言語バージョンを変えられるらしいという情報もありましたが、どこの事だかまったくわかりません。
よければアドバイスをお願いします。
また、CS0106 修飾子publicがこの項目に対して有効ではありません。というエラーもよく出ます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

C#

1void Update() 2{ //これが閉じる前に 3 4public void PushButtonMemo(){ //別のメソッドの定義が始まってしまっている

投稿2018/07/13 07:22

ozwk

総合スコア13521

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

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

nhjlauzaxa58

2018/07/13 07:29

あっという間に解決しました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問