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

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

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

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

Unity

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

Q&A

解決済

3回答

12157閲覧

unity セミコロンが抜けていると指摘されるが何のことかわからない

vp650_k

総合スコア12

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2015/06/25 11:29

以下のようなプログラムを組んだのですが、4行目に
『expected.insert a semicolon at the end.(UCE0001)』というエラーが出ます。
とりあえず4行目以降にセミコロンを色々打ってみたのですが解決しません。
マウスのボタンを押すとカウントしてデバックログに数値が出るというプログラムです。

どこが間違っているのでしょうか。

var number:float;
function Update() {
function OnGUI(){

if(Input.GetMouseButtonDown(0)){ number++; Debug.Log(number); } } }

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

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

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

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

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

guest

回答3

0

ベストアンサー

たぶん正しいコード

lang

1//たぶん毎フレーム走るやつ 2function Update() { 3 if(Input.GetMouseButtonDown(0)){ 4 number++; 5 } 6} 7function OnGUI(){ 8 Debug.Log(number); 9} 10

上の方がおっしゃっているとおり、関数の中に関数を作ることはできません。

lang

1//関数の外 2function 関数名(){ 3 //関数の中 4} 5//関数の外

というイメージです。
あなたのコードでは

lang

1 2function Update() { 3 //関数(Update)の中 4 function OnGUI(){ 5 //関数(OnGUI)の中 6 if(Input.GetMouseButtonDown(0)){ 7 8 number++; 9 10 Debug.Log(number); 11 } 12 } 13 14}

という感じでUpdateの関数が終わらないうちにOnGUIの関数を書き始めたため、
Updateの終わりはどこだよといわれています。
セミコロンが必要と言われていますが、これは
プログラムの文法上おかしなことを
したときによく出ます。
この場合は括弧の対応がとれていないためです。

投稿2015/06/25 13:09

MitiMinish

総合スコア33

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

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

vp650_k

2015/06/26 12:18

理解出来ました。フレームごとに呼ぶ為にはupdateの中に入れなければならないと思いその中に突っ込んでいたのですが、参考書とかで色々調べてみたところOnGui関数もupdate関数と同様に毎フレーム呼び出すという仕組みになっているのですね。updateの中に入れる必要は無かった様です。たくさんの回答、ありがとうございました。
guest

0

関数の中に関数を作ろうとしてますが......

javaScriptは良く分かりませんが、そんな事できるの?

投稿2015/06/25 12:29

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

otn

2015/06/25 13:16

JavaScriptだと何の問題も無く出来ますよ。
otn

2015/06/25 13:30

失礼しました。Unityの自称JavaScriptは本物のJavaScriptと仕様が全然違うのですね。 上のコメントは、本物のJavaScriptの話です。 何故違う物に同じ名前を付けるのだろうか不思議です。
退会済みユーザー

退会済みユーザー

2015/06/25 23:52

普通のJavaScriptなら全然おかしな事ではないんですね。 Unityでそういった記述を見たことが無かったので、出来ないんじゃないかと思ったのです。 勉強になりました、ありがとうございます。
guest

0

ボタンなどを作らないのにOnGUIを使うのは何か意味があるのでしょか?
クリックしてログを出すだけなら、Updateだけで可能ですよね。

OnGUIはあくまでUIの描写に使うのがいいと思います。

lang

1var number:float; 2function OnGUI () { 3 if (GUI.Button (Rect (20,40,80,20), "ボタン")) { 4 number++; 5 Debug.Log(number); 6 } 7}

投稿2015/06/26 02:08

runun

総合スコア305

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問