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

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

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

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

Unity

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

Q&A

3回答

10509閲覧

Unexpected symbol 'var' どうエラーなのかよくわかりません

tattuko

総合スコア6

C#

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

Unity

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

0グッド

0クリップ

投稿2017/05/18 03:35

###前提・実現したいこと
Unityで、画面上にいるキャラクターの操作切り替え
今の操作キャラを消して別のキャラに変えるのではなく、操作だけを切り替えるものです

###発生している問題・エラーメッセージ
エラーメッセージ
Unexpected symbol 'var', expecting 'class' , 'delegate' , 'enum' , 'interface' , 'partial' , or 'struct
###該当のソースコード

C#

1```using UnityEngine; 2 3public var nowChara : int; // 現在どのキャラクターを操作しているか 4public var chara : GameObject[]; // 操作可能なゲームキャラクター 5 6function Start () { 7 // 最初の操作キャラクターを決める 8 nowChara = 0; 9 // 最初の操作キャラクターを0番目のキャラクターにする為-1する 10 ChangeCharacter(nowChara - 1); 11 12} 13 14function Update () { 15 // Qキーが押されたら操作キャラクターを次のキャラクターに変更する 16 if(Input.GetKeyDown("j")) { 17 18 ChangeCharacter(nowChara); 19 } 20} 21 22function ChangeCharacter(tempNowChara : int) { 23 24 var flag : boolean; // オン・オフのフラグ 25 // 次の操作キャラクターを指定 26 var nextChara : int = tempNowChara + 1; 27 // 次の操作キャラクターがいない時は最初のキャラクターに設定 28 if(nextChara >= chara.length) { 29 nextChara = 0; 30 } 31 // 次の操作キャラクターだったら動く機能を有効にし、それ以外は無効にする 32 // キャラクター同士でぶつかるようにする為CapsuleColliderのオン・オフもする 33 for(var i : int = 0; i < chara.length; i++) { 34 35 if(i == nextChara) { 36 flag = true; 37 } else { 38 flag = false; 39 } 40 chara[i].GetComponent.<CharacterController>().enabled = flag; 41 chara[i].GetComponent.<CapsuleCollider>().enabled = !flag; 42 chara[i].GetComponent.<MoveTest>().enabled = flag; 43 // キャラクターのアニメーションを最初の状態にする為アニメーションパラメータのSpeedを0にする 44 chara[i].GetComponent.<Animator>().SetFloat("Speed", 0); 45 } 46 // 次の操作キャラクターを現在操作しているキャラクターに設定して終了 47 nowChara = nextChara; 48}

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

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

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

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

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

guest

回答3

0

エラーメッセージの英文を翻訳してみましょうか。

Unexpected symbol 'var', expecting 'class' , 'delegate' , 'enum' , 'interface' , 'partial' , or 'struct'

予期しないシンボル 'var' が、想定しているシンボル 'class', 'delegate', 'enum', 'interface', 'partial', 'struct' があるはずのところに出てきた、
という意味です。
つまり

C#

1public var nowChara : int; // 現在どのキャラクターを操作しているか

この 'var' って何よ? と言われているのです。

というかですね、そもそも C# の文法にあってません。

投稿2017/05/18 03:46

tacsheaven

総合スコア13703

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

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

0

もしかすると、型指定の記法を他の言語と混同してしまってはいませんでしょうか?

投稿2017/05/18 03:42

Bongo

総合スコア10807

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

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

0

public var nowChara : int;

C#に強くないので正直読めるところが少ないのですが、

おそらくこれはint型でキャラクターの番号を作っているのだと思いますが
この書き方はSwift言語の書き方かもしれません。

Swiftですとこの書き方は「nowCharaというInt型の変数があります」と定義しておりますので

投稿2017/05/22 05:57

RagnAnet1373

総合スコア69

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

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

Bongo

2017/05/22 07:23

「Unityで」とのことですので、JavaScriptの可能性もありそうですね...
RagnAnet1373

2017/05/22 08:01

@Bongoさん>>>あ〜・・・、UnityですとJavaScriptも使えるんでしたね・・・、確かにその可能性もありですね・・・ @ozwkさん>>>ご丁寧にありがとうございます。確かに逆のパターンで書かれてますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問